<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <script>/*! For license information please see mutation-test-elements.js.LICENSE.txt */
(()=>{var e={8986:(e,t,r)=>{"use strict";r.d(t,{Z:()=>a});var n=r(9601),o=r.n(n),i=r(2609),s=r.n(i)()(o());s.push([e.id,":host{background-color:var(--bs-body-bg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.15;line-height:1.5;margin:0;text-align:left}.container-fluid{background-color:var(--bs-body-bg)}.display-4 small{font-weight:300}.theme-switch{float:right;margin-left:1em;margin-right:1em;padding-top:.5em;position:sticky;top:var(--top-offset,0);z-index:20}.nav-link{outline:none}",""]);const a=s},3704:(e,t,r)=>{"use strict";r.d(t,{Z:()=>v});var n=r(9601),o=r.n(n),i=r(2609),s=r.n(i),a=r(8991),l=r.n(a),c=new URL(r(7327),r.b),d=new URL(r(3726),r.b),u=new URL(r(6076),r.b),h=new URL(r(5605),r.b),b=s()(o()),p=l()(c),g=l()(d),f=l()(u),m=l()(h);b.push([e.id,"/*!\n * Bootstrap Reboot v5.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */*,:after,:before{box-sizing:border-box}@media(prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}h1,h5,h6{font-weight:500;line-height:1.2;margin-bottom:.5rem;margin-top:0}h1{font-size:calc(1.375rem + 1.5vw)}@media(min-width:1200px){h1{font-size:2.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}ol,ul{margin-bottom:1rem;margin-top:0;padding-left:2rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}b{font-weight:bolder}small{font-size:.875em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,pre{direction:ltr;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;unicode-bidi:bidi-override}pre{display:block;font-size:.875em;margin-bottom:1rem;margin-top:0;overflow:auto}pre code{color:inherit;font-size:inherit;word-break:normal}code{word-wrap:break-word;color:#d63384;font-size:.875em}a>code{color:inherit}img,svg{vertical-align:middle}table{border-collapse:collapse;caption-side:bottom}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,th,thead,tr{border:0 solid;border-color:inherit}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input{font-family:inherit;font-size:inherit;line-height:inherit;margin:0}button{text-transform:none}[role=button]{cursor:pointer}[type=button],button{-webkit-appearance:button}[type=button]:not(:disabled),button:not(:disabled){cursor:pointer}legend{float:left;font-size:calc(1.275rem + .3vw);line-height:inherit;margin-bottom:.5rem;padding:0;width:100%}@media(min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}summary{cursor:pointer;display:list-item}progress{vertical-align:baseline}:host{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-caution:#fd7e14;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-body-rgb:33,37,41}:host(:not([theme=dark])){--bs-link-color:#0d6efd;--bs-link-hover-color:#0a58ca;--bs-breadcrumb-bg:#e9ecef;--bs-breadcrumb-active-color:#6c757d;--bs-body-bg:#fff;--bs-body-color:#212529;--bs-card-bg:#fff;--bs-card-border-color:rgba(0,0,0,.125);--bs-card-cap-bg:#e9ecef;--bs-list-group-hover-bg:#f8f9fa;--bs-list-group-bg:#fff;--bs-list-group-border-color:rgba(0,0,0,.125);--bs-list-group-action-hover-color:#495057;--bs-list-group-action-active-color:#212529;--bs-list-group-action-active-bg:#e9ecef;--bs-list-group-action-color:#495057;--bs-list-group-active-color:#fff;--bs-list-group-active-bg:#0d6efd;--bs-list-group-active-border-color:#0d6efd;--bs-table-border-color:#dee2e6;--bs-table-bg-hover:rgba(0,0,0,.075);--bs-progress-bg:#e9ecef;--bs-table-caution-hover-bg:#f57102;--bs-badge-caution-color:#000;--bs-btn-caution-color:#000;--bs-btn-caution-hover-color:#000;--bs-caution-bg:#fd7e14;--bs-caution-bg-light:rgba(253,126,20,.25);--bs-table-primary-hover-bg:#0262ef;--bs-badge-primary-color:#fff;--bs-btn-primary-color:#fff;--bs-btn-primary-hover-color:#fff;--bs-primary-bg:#0d6efd;--bs-primary-bg-light:rgba(13,110,253,.25);--bs-table-secondary-hover-bg:#60686f;--bs-badge-secondary-color:#fff;--bs-btn-secondary-color:#fff;--bs-btn-secondary-hover-color:#fff;--bs-secondary-bg:#6c757d;--bs-secondary-bg-light:hsla(208,7%,46%,.25);--bs-table-success-hover-bg:#157147;--bs-badge-success-color:#fff;--bs-btn-success-color:#fff;--bs-btn-success-hover-color:#fff;--bs-success-bg:#198754;--bs-success-bg-light:rgba(25,135,84,.25);--bs-table-info-hover-bg:#0cb6d8;--bs-badge-info-color:#000;--bs-btn-info-color:#000;--bs-btn-info-hover-color:#000;--bs-info-bg:#0dcaf0;--bs-info-bg-light:rgba(13,202,240,.25);--bs-table-warning-hover-bg:#edb100;--bs-badge-warning-color:#000;--bs-btn-warning-color:#000;--bs-btn-warning-hover-color:#000;--bs-warning-bg:#ffc107;--bs-warning-bg-light:rgba(255,193,7,.25);--bs-table-danger-hover-bg:#d32535;--bs-badge-danger-color:#fff;--bs-btn-danger-color:#fff;--bs-btn-danger-hover-color:#fff;--bs-danger-bg:#dc3545;--bs-danger-bg-light:rgba(220,53,69,.25);--bs-table-light-hover-bg:#e9ecef;--bs-badge-light-color:#000;--bs-btn-light-color:#000;--bs-btn-light-hover-color:#000;--bs-light-bg:#f8f9fa;--bs-light-bg-light:rgba(248,249,250,.25);--bs-table-dark-hover-bg:#16181b;--bs-badge-dark-color:#fff;--bs-btn-dark-color:#fff;--bs-btn-dark-hover-color:#fff;--bs-dark-bg:#212529;--bs-dark-bg-light:rgba(33,37,41,.25);--bs-anchor:#f5f6f7;--bs-nav-tabs-link-hover-border-color:#e9ecef #e9ecef #dee2e6;--bs-nav-tabs-link-active-color:#495057;--bs-nav-tabs-link-active-bg:#fff;--bs-nav-tabs-link-active-border-color:#dee2e6 #dee2e6 #fff;--bs-nav-tabs-border-color:#dee2e6}:host([theme=dark]){--bs-link-color:#538ce9;--bs-link-hover-color:#1b62d4;--bs-breadcrumb-bg:#242526;--bs-breadcrumb-active-color:#dadde1;--bs-body-bg:#18191a;--bs-body-color:#f5f6f7;--bs-card-bg:#1c1e21;--bs-card-border-color:rgba(0,0,0,.125);--bs-card-cap-bg:#1c1e21;--bs-list-group-hover-bg:#606770;--bs-list-group-bg:#242526;--bs-list-group-border-color:#1c1e21;--bs-list-group-action-hover-color:#f5f6f7;--bs-list-group-action-active-color:#f5f6f7;--bs-list-group-action-active-bg:#606770;--bs-list-group-action-color:#f5f6f7;--bs-list-group-active-color:#f5f6f7;--bs-list-group-active-bg:#3578e5;--bs-list-group-active-border-color:#3578e5;--bs-table-border-color:#606770;--bs-table-bg-hover:#242526;--bs-progress-bg:#242526;--bs-table-primary-bg:#3578e5;--bs-table-primary-hover-bg:#1e69e2;--bs-badge-primary-color:#000;--bs-btn-primary-color:#000;--bs-btn-primary-hover-color:#fff;--bs-primary-bg:#3578e5;--bs-primary-bg-light:rgba(53,120,229,.25);--bs-table-secondary-bg:#242526;--bs-table-secondary-hover-bg:#181819;--bs-badge-secondary-color:#fff;--bs-btn-secondary-color:#fff;--bs-btn-secondary-hover-color:#fff;--bs-secondary-bg:#242526;--bs-secondary-bg-light:rgba(36,37,38,.25);--bs-table-success-bg:#009400;--bs-table-success-hover-bg:#007b00;--bs-badge-success-color:#000;--bs-btn-success-color:#000;--bs-btn-success-hover-color:#fff;--bs-success-bg:#009400;--bs-success-bg-light:rgba(0,148,0,.25);--bs-table-info-bg:#54c7ec;--bs-table-info-hover-bg:#3dbfe9;--bs-badge-info-color:#000;--bs-btn-info-color:#000;--bs-btn-info-hover-color:#000;--bs-info-bg:#54c7ec;--bs-info-bg-light:rgba(84,199,236,.25);--bs-table-warning-bg:#ffc426;--bs-table-warning-hover-bg:#ffbd0d;--bs-badge-warning-color:#000;--bs-btn-warning-color:#000;--bs-btn-warning-hover-color:#000;--bs-warning-bg:#ffc426;--bs-warning-bg-light:rgba(255,196,38,.25);--bs-table-danger-bg:#e13238;--bs-table-danger-hover-bg:#da2026;--bs-badge-danger-color:#000;--bs-btn-danger-color:#000;--bs-btn-danger-hover-color:#fff;--bs-danger-bg:#e13238;--bs-danger-bg-light:rgba(225,50,56,.25);--bs-table-light-bg:#8d949e;--bs-table-light-hover-bg:#7f8792;--bs-badge-light-color:#000;--bs-btn-light-color:#000;--bs-btn-light-hover-color:#000;--bs-light-bg:#8d949e;--bs-light-bg-light:hsla(215,8%,59%,.25);--bs-table-caution-bg:#ff8b26;--bs-table-caution-hover-bg:#ff7d0d;--bs-badge-caution-color:#000;--bs-btn-caution-color:#000;--bs-btn-caution-hover-color:#000;--bs-caution-bg:#ff8b26;--bs-caution-bg-light:rgba(255,139,38,.25);--bs-table-dark-bg:#1c1e21;--bs-table-dark-hover-bg:#101113;--bs-badge-dark-color:#fff;--bs-btn-dark-color:#fff;--bs-btn-dark-hover-color:#fff;--bs-dark-bg:#1c1e21;--bs-dark-bg-light:rgba(28,30,33,.25);--bs-nav-tabs-link-hover-border-color:#242526 #242526 transparent;--bs-nav-tabs-link-active-color:#f5f6f7;--bs-nav-tabs-link-active-bg:#242526;--bs-nav-tabs-link-active-border-color:#242526 #242526 transparent;--bs-nav-tabs-border-color:#242526}:host(:not([theme=dark])){--prism-maintext:#393a34;--prism-background:#f6f8fa;--prism-border:#ddd;--prism-operator:var(--prism-maintext);--prism-punctuation:var(--prism-maintext);--prism-atrule:#00a4db;--prism-attr:var(--prism-atrule);--prism-selector:var(--prism-atrule);--prism-cdata:#998;--prism-comment:var(--prism-cdata);--prism-doctype:var(--prism-cdata);--prism-prolog:var(--prism-cdata);--prism-deleted:#6f42c1;--prism-function:var(--prism-deleted);--prism-tag:var(--prism-deleted);--prism-boolean:#36acaa;--prism-constant:var(--prism-boolean);--prism-entity:var(--prism-boolean);--prism-inserted:var(--prism-boolean);--prism-number:var(--prism-boolean);--prism-property:var(--prism-boolean);--prism-regex:var(--prism-boolean);--prism-symbol:var(--prism-boolean);--prism-url:var(--prism-boolean);--prism-variable:var(--prism-boolean);--prism-attr:#e3116c;--prism-string:var(--prism-attr);--prism-keyword:#00009f;--prism-selector:var(--prism-keyword);--prism-tag:var(--prism-keyword)}:host([theme=dark]){--prism-maintext:#d3d0c8;--prism-background:#2d2d2d;--prism-border:#393939;--prism-cdata:#747369;--prism-comment:var(--prism-cdata);--prism-doctype:var(--prism-cdata);--prism-prolog:var(--prism-cdata);--prism-punctuation:#d3d0c8;--prism-attr-name:#f99157;--prism-boolean:var(--prism-attr-name);--prism-number:var(--prism-attr-name);--prism-operator:var(--prism-attr-name);--prism-property:#fc6;--prism-placeholder:#69c;--prism-tag:var(--prism-placeholder);--prism-variable:var(--prism-placeholder);--prism-selector:#c9c;--prism-keyword:var(--prism-selector);--prism-atrule:#6cc;--prism-entity:var(--prism-atrule);--prism-regex:var(--prism-atrule);--prism-statement:var(--prism-atrule);--prism-string:var(--prism-atrule);--prism-url:var(--prism-atrule);--prism-attr-value:#9c9;--prism-control:var(--prism-attr-value);--prism-directive:var(--prism-attr-value);--prism-unit:var(--prism-attr-value);--prism-important:#ab4642}:host(:not([theme=dark])){--mut-file-ts-color:#498ba7;--mut-file-ts-test-color:#b7b73b;--mut-file-scala-color:#b8383d;--mut-file-java-color:#b8383d;--mut-file-js-color:#b7b73b;--mut-file-js-test-color:#cc6d2e;--mut-file-php-color:#9068b0;--mut-file-html-color:#498ba7;--mut-file-csharp-color:#498ba7;--mut-file-vue-color:#7fae42;--mut-file-gherkin-color:#00a818}:host([theme=dark]){--mut-file-ts-color:#519aba;--mut-file-ts-test-color:#cbcb41;--mut-file-scala-color:#cc3e44;--mut-file-java-color:#cc3e44;--mut-file-js-color:#cbcb41;--mut-file-js-test-color:#e37933;--mut-file-php-color:#a074c4;--mut-file-html-color:#519aba;--mut-file-csharp-color:#519aba;--mut-file-vue-color:#8dc149;--mut-file-gherkin-color:#10b828}:host(:not([theme=dark])){--mut-octicon-icon-color:#498ba7;--mut-line-number:#6e7781;--mut-diff-add-bg:#e6ffec;--mut-diff-add-bg-line-number:#ccffd8;--mut-diff-add-line-number:#24292f;--mut-diff-del-bg:#ffebe9;--mut-diff-del-bg-line-number:#ffd7d5;--mut-diff-del-line-number:var(--mut-diff-add-line-number);--mut-badge-info-bg:#54c6ec;--mut-badge-info:#212529;--mut-code-lense:#919191;--mut-squiggly-danger:url("+p+");--mut-squiggly-caution:url("+g+")}:host([theme=dark]){--mut-octicon-icon-color:#519aba;--mut-line-number:#484f58;--mut-diff-add-bg:rgba(46,160,67,.15);--mut-diff-add-bg-line-number:rgba(63,185,80,.3);--mut-diff-add-line-number:#c9d1d9;--mut-diff-del-bg:rgba(248,81,73,.15);--mut-diff-del-bg-line-number:rgba(248,81,73,.3);--mut-diff-del-line-number:#c9d1d9;--mut-badge-info-bg:#17a3b8;--mut-badge-info:#fff;--mut-code-lense:#999;--mut-squiggly-danger:url("+f+");--mut-squiggly-caution:url("+m+")}",""]);const v=b},371:(e,t,r)=>{"use strict";r.d(t,{Z:()=>a});var n=r(9601),o=r.n(n),i=r(2609),s=r.n(i)()(o());s.push([e.id,".list-group-item{background-color:var(--bs-card-cap-bg);color:inherit}",""]);const a=s},4642:(e,t,r)=>{"use strict";r.d(t,{Z:()=>a});var n=r(9601),o=r.n(n),i=r(2609),s=r.n(i)()(o());s.push([e.id,".list-group-item{background-color:var(--bs-card-cap-bg);color:inherit}",""]);const a=s},9483:(e,t,r)=>{"use strict";r.d(t,{Z:()=>a});var n=r(9601),o=r.n(n),i=r(2609),s=r.n(i)()(o());s.push([e.id,":host{background-color:var(--bs-card-cap-bg);bottom:0;left:0;overflow:hidden;position:fixed;transition:height .2s cubic-bezier(.4,0,.2,1);width:100%;z-index:3}header{border-bottom:1px;padding:1rem;width:100%}header h5{margin:0;padding:0}:host([mode=closed]){height:0}:host([mode=half]){height:120px}:host([mode=open]){height:50%}.summary{overflow:auto}",""]);const a=s},8847:(e,t,r)=>{"use strict";r.d(t,{Z:()=>a});var n=r(9601),o=r.n(n),i=r(2609),s=r.n(i)()(o());s.push([e.id,"svg.cs{fill:var(--mut-file-csharp-color)}svg.html{fill:var(--mut-file-html-color)}svg.java{fill:var(--mut-file-java-color)}svg.javascript{fill:var(--mut-file-js-color)}svg.scala{fill:var(--mut-file-scala-color)}svg.typescript{fill:var(--mut-file-ts-color)}svg.php{fill:var(--mut-file-php-color)}svg.vue{fill:var(--mut-file-vue-color)}svg.octicon{fill:var(--mut-octicon-icon-color)}svg.javascript.test,svg.typescript.test{fill:var(--mut-file-js-test-color)}svg.gherkin{fill:var(--mut-file-gherkin-color)}svg{vertical-align:middle}",""]);const a=s},5545:(e,t,r)=>{"use strict";r.d(t,{Z:()=>a});var n=r(9601),o=r.n(n),i=r(2609),s=r.n(i)()(o());s.push([e.id,'/*!\n * Bootstrap Reboot v5.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */*,:after,:before{box-sizing:border-box}@media(prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}h1,h5,h6{font-weight:500;line-height:1.2;margin-bottom:.5rem;margin-top:0}h1{font-size:calc(1.375rem + 1.5vw)}@media(min-width:1200px){h1{font-size:2.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}ol,ul{margin-bottom:1rem;margin-top:0;padding-left:2rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}b{font-weight:bolder}small{font-size:.875em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,pre{direction:ltr;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;unicode-bidi:bidi-override}pre{display:block;font-size:.875em;margin-bottom:1rem;margin-top:0;overflow:auto}pre code{color:inherit;font-size:inherit;word-break:normal}code{word-wrap:break-word;color:#d63384;font-size:.875em}a>code{color:inherit}img,svg{vertical-align:middle}table{border-collapse:collapse;caption-side:bottom}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,th,thead,tr{border:0 solid;border-color:inherit}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input{font-family:inherit;font-size:inherit;line-height:inherit;margin:0}button{text-transform:none}[role=button]{cursor:pointer}[type=button],button{-webkit-appearance:button}[type=button]:not(:disabled),button:not(:disabled){cursor:pointer}legend{float:left;font-size:calc(1.275rem + .3vw);line-height:inherit;margin-bottom:.5rem;padding:0;width:100%}@media(min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}summary{cursor:pointer;display:list-item}progress{vertical-align:baseline}:host{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-caution:#fd7e14;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-body-rgb:33,37,41}#report-code-block{background:var(--prism-background);border:1px solid var(--prism-border);overflow:visible}.line-numbers{counter-reset:mte-line-number}.line .line-number{color:var(--mut-line-number);counter-increment:mte-line-number;padding:0 10px 0 15px;text-align:right}.line .line-number:before{content:counter(mte-line-number)}.line-marker:before{content:" ";padding:0 5px}.mte-selected-Killed .mutant.Killed{border-bottom:2px solid;border-color:var(--bs-success);cursor:pointer}svg.mutant-dot.Killed{fill:var(--bs-success)}svg.mutant-dot.NoCoverage{fill:var(--bs-caution)}svg.mutant-dot.Survived{fill:var(--bs-danger)}.mte-selected-Timeout .mutant.Timeout{border-bottom:2px solid;border-color:var(--bs-warning);cursor:pointer}svg.mutant-dot.Timeout{fill:var(--bs-warning)}.mte-selected-CompileError .mutant.CompileError{border-bottom:2px solid;border-color:var(--bs-secondary);cursor:pointer}svg.mutant-dot.CompileError{fill:var(--bs-secondary)}.mte-selected-RuntimeError .mutant.RuntimeError{border-bottom:2px solid;border-color:var(--bs-secondary);cursor:pointer}svg.mutant-dot.RuntimeError{fill:var(--bs-secondary)}svg.mutant-dot.selected{fill:var(--bs-info)}.mte-selected-Survived .mutant.Survived{border-bottom-style:solid;border-image-outset:3px;border-image-repeat:repeat;border-image-slice:0 0 4 0;border-image-source:var(--mut-squiggly-danger);border-image-width:4px;cursor:pointer}.mte-selected-Survived .mutant.Survived .mutant.NoCoverage,.mte-selected-Survived .mutant.Survived .mutant.Survived{border-bottom-style:none;border-image:none}.mte-selected-NoCoverage .mutant.NoCoverage{border-bottom-style:solid;border-image-outset:3px;border-image-repeat:repeat;border-image-slice:0 0 4 0;border-image-source:var(--mut-squiggly-caution);border-image-width:4px;cursor:pointer}.mte-selected-NoCoverage .mutant.NoCoverage .mutant.NoCoverage,.mte-selected-NoCoverage .mutant.NoCoverage .mutant.Survived{border-bottom-style:none;border-image:none}.mutant-dot{cursor:pointer}svg.mutant-dot{margin:1px 2px}.diff-old{background-color:var(--mut-diff-del-bg)}.diff-focus{background-color:var(--mut-diff-add-bg-line-number)}.diff-old .line-number{background-color:var(--mut-diff-del-bg-line-number);color:var(--mut-diff-del-line-number)}.diff-old .line-marker:before{content:"-"}.diff-new{background-color:var(--mut-diff-add-bg)}.diff-new .empty-line-number{background-color:var(--mut-diff-add-bg-line-number);color:var(--mut-diff-add-line-number)}.diff-new .line-marker:before{content:"+"}',""]);const a=s},8469:(e,t,r)=>{"use strict";r.d(t,{Z:()=>a});var n=r(9601),o=r.n(n),i=r(2609),s=r.n(i)()(o());s.push([e.id,".table a{display:block}th.rotate{height:96px;padding-bottom:10px;white-space:nowrap}th.rotate>div{transform:translate(27px) rotate(325deg);width:30px}table td.icon{padding-left:10px;padding-right:2px}a.info-icon{float:right}a.info-icon,a:not(:hover){text-decoration:none}",""]);const a=s},3813:(e,t,r)=>{"use strict";r.d(t,{Z:()=>a});var n=r(9601),o=r.n(n),i=r(2609),s=r.n(i)()(o());s.push([e.id,"main{padding-bottom:120px}",""]);const a=s},1276:(e,t,r)=>{"use strict";r.d(t,{Z:()=>a});var n=r(9601),o=r.n(n),i=r(2609),s=r.n(i)()(o());s.push([e.id,".legend{background:var(--bs-body-bg);margin-bottom:.5rem;margin-top:.5rem;padding-bottom:.5rem;padding-top:.5rem;position:sticky;top:var(--top-offset,0);z-index:10}.badge{cursor:pointer;font-size:1em}",""]);const a=s},5110:(e,t,r)=>{"use strict";r.d(t,{Z:()=>a});var n=r(9601),o=r.n(n),i=r(2609),s=r.n(i)()(o());s.push([e.id,'#report-code-block{background:var(--prism-background);border:1px solid var(--prism-border);overflow:visible}.line-numbers{counter-reset:mte-line-number}.line .line-number{color:var(--mut-line-number);counter-increment:mte-line-number;padding:0 10px 0 15px;text-align:right}.line .line-number:before{content:counter(mte-line-number)}.line-marker:before{content:" ";padding:0 5px}svg.test-dot.Killing{fill:var(--bs-success)}svg.test-dot.Covering{fill:var(--bs-warning)}svg.test-dot.NotCovering{fill:var(--bs-caution)}svg.test-dot.selected{fill:var(--bs-info)}.test-dot{cursor:pointer}svg.test-dot{margin:1px 2px}',""]);const a=s},9827:(e,t,r)=>{"use strict";r.d(t,{Z:()=>a});var n=r(9601),o=r.n(n),i=r(2609),s=r.n(i)()(o());s.push([e.id,"main{padding-bottom:120px}",""]);const a=s},4835:(e,t,r)=>{"use strict";r.d(t,{Z:()=>a});var n=r(9601),o=r.n(n),i=r(2609),s=r.n(i)()(o());s.push([e.id,'#darkTheme{position:absolute;right:100vw}#darkTheme+label{--i:0;--j:calc(1 - var(--i));grid-gap:.15em .06em;background:hsl(199,98%,calc(var(--j)*48%));border-radius:.75em;color:transparent;cursor:pointer;display:grid;height:1.5em;overflow:hidden;padding:.15em;transition:.3s;user-select:none}#darkTheme+label:after,#darkTheme+label:before{content:"";height:1.2em;transition:inherit;width:1.2em}#darkTheme+label:before{--poly:polygon(44.133707561% 12.9616872277%,50% 0%,55.866292439% 12.9616872277%,59.7057141913% 13.7777815142%,63.4387981079% 14.9907340064%,67.0246437402% 16.5872553429%,79.3892626146% 9.5491502813%,76.5165042945% 23.4834957055%,79.1429735546% 26.4004853356%,81.450146298% 29.5760361869%,83.4127446571% 32.9753562598%,97.5528258148% 34.5491502813%,87.0383127723% 44.133707561%,87.4486075533% 48.0374016409%,87.4486075533% 51.9625983591%,87.0383127723% 55.866292439%,97.5528258148% 65.4508497187%,83.4127446571% 67.0246437402%,81.450146298% 70.4239638131%,79.1429735546% 73.5995146644%,76.5165042945% 76.5165042945%,79.3892626146% 90.4508497187%,67.0246437402% 83.4127446571%,63.4387981079% 85.0092659936%,59.7057141913% 86.2222184858%,55.866292439% 87.0383127723%,50% 100%,44.133707561% 87.0383127723%,40.2942858087% 86.2222184858%,36.561201892% 85.0092659936%,32.9753562598% 83.4127446571%,20.6107373854% 90.4508497187%,23.4834957055% 76.5165042945%,20.8570264454% 73.5995146644%,18.5498537021% 70.4239638131%,16.587255343% 67.0246437402%,2.4471741856% 65.4508497188%,12.9616872286% 55.8662924391%,12.5513924487% 51.9625983594%,12.5513924508% 48.0374016414%,12.961687236% 44.1337075622%,2.4471742159% 34.5491502859%,16.587255404% 32.9753562694%,18.5498538164% 29.5760362054%,20.8570266557% 26.4004853707%,23.4834960862% 23.4834957706%,20.6107385856% 9.5491504949%,32.97535832% 16.5872557238%,36.5612054098% 14.9907346728%,40.2942917387% 13.7777826649%);background:#ff0;-webkit-clip-path:var(--poly);clip-path:var(--poly);transform:translate(calc(var(--i)*(100% + .06em))) scale(calc(1 - var(--i)*.8));transform-origin:20% 20%}#darkTheme+label:after{background:radial-gradient(circle at 19% 19%,transparent 41%,#fff 43%);border-radius:50%;grid-column:2;transform:translatey(calc(var(--i)*(-130% - .15em)))}#darkTheme:checked+label{--i:1}.check-box-container{width:2.9em}',""]);const a=s},5465:(e,t,r)=>{"use strict";r.d(t,{Z:()=>a});var n=r(9601),o=r.n(n),i=r(2609),s=r.n(i)()(o());s.push([e.id,".tooltip{cursor:help;text-decoration:underline dotted}",""]);const a=s},2420:(e,t,r)=>{"use strict";r.d(t,{Z:()=>p});var n=r(9601),o=r.n(n),i=r(2609),s=r.n(i),a=r(8991),l=r.n(a),c=new URL(r(5322),r.b),d=new URL(r(388),r.b),u=s()(o()),h=l()(c),b=l()(d);u.push([e.id,'/*!\n * Bootstrap Reboot v5.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */:host{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-caution:#fd7e14;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-body-rgb:33,37,41}/*!\n * Bootstrap v5.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-caution:#fd7e14;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-body-rgb:33,37,41;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg,hsla(0,0%,100%,.15),hsla(0,0%,100%,0));--bs-body-font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-bg:#fff}*,:after,:before{box-sizing:border-box}@media(prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}.h1,.h5,.h6,h1,h5,h6{font-weight:500;line-height:1.2;margin-bottom:.5rem;margin-top:0}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media(min-width:1200px){.h1,h1{font-size:2.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}ol,ul{margin-bottom:1rem;margin-top:0;padding-left:2rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}b{font-weight:bolder}.small,small{font-size:.875em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,pre{direction:ltr;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;unicode-bidi:bidi-override}pre{display:block;font-size:.875em;margin-bottom:1rem;margin-top:0;overflow:auto}pre code{color:inherit;font-size:inherit;word-break:normal}code{word-wrap:break-word;color:#d63384;font-size:.875em}a>code{color:inherit}img,svg{vertical-align:middle}table{border-collapse:collapse;caption-side:bottom}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,th,thead,tr{border:0 solid;border-color:inherit}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input{font-family:inherit;font-size:inherit;line-height:inherit;margin:0}button{text-transform:none}[role=button]{cursor:pointer}[type=button],button{-webkit-appearance:button}[type=button]:not(:disabled),button:not(:disabled){cursor:pointer}legend{float:left;font-size:calc(1.275rem + .3vw);line-height:inherit;margin-bottom:.5rem;padding:0;width:100%}@media(min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}summary{cursor:pointer;display:list-item}progress{vertical-align:baseline}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media(min-width:1200px){.display-4{font-size:3.5rem}}.container-fluid{margin-left:auto;margin-right:auto;padding-left:var(--bs-gutter-x,.75rem);padding-right:var(--bs-gutter-x,.75rem);width:100%}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-left:calc(var(--bs-gutter-x)*-.5);margin-right:calc(var(--bs-gutter-x)*-.5);margin-top:calc(var(--bs-gutter-y)*-1)}.row>*{flex-shrink:0;margin-top:var(--bs-gutter-y);max-width:100%;padding-left:calc(var(--bs-gutter-x)*.5);padding-right:calc(var(--bs-gutter-x)*.5);width:100%}.col{flex:1 0 0%}@media(min-width:576px){.col-sm-11{flex:0 0 auto;width:91.66666667%}}@media(min-width:768px){.col-md-12{flex:0 0 auto;width:100%}}.table{--bs-table-bg:transparent;--bs-table-accent-bg:transparent;--bs-table-striped-color:#212529;--bs-table-striped-bg:rgba(0,0,0,.05);--bs-table-active-color:#212529;--bs-table-active-bg:rgba(0,0,0,.1);--bs-table-hover-color:#212529;--bs-table-hover-bg:rgba(0,0,0,.075);border-color:#dee2e6;color:#212529;margin-bottom:1rem;vertical-align:top;width:100%}.table>:not(caption)>*>*{background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg);padding:.5rem}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table>:not(:last-child)>:last-child>*{border-bottom-color:currentColor}.table-hover>tbody>tr:hover{--bs-table-accent-bg:var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.form-check{display:block;margin-bottom:.125rem;min-height:1.5rem;padding-left:1.5em}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-input{appearance:none;background-color:#fff;background-position:50%;background-repeat:no-repeat;background-size:contain;border:1px solid rgba(0,0,0,.25);color-adjust:exact;height:1em;margin-top:.25em;vertical-align:top;width:1em}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;box-shadow:0 0 0 .25rem rgba(13,110,253,.25);outline:0}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{background-image:url('+h+")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;background-image:url("+b+');border-color:#0d6efd}.form-check-input:disabled{filter:none;opacity:.5;pointer-events:none}.form-check-input:disabled~.form-check-label{opacity:.5}.form-check-inline{display:inline-block;margin-right:1rem}.btn{background-color:transparent;border:1px solid transparent;border-radius:.25rem;color:#212529;cursor:pointer;display:inline-block;font-size:1rem;font-weight:400;line-height:1.5;padding:.375rem .75rem;text-align:center;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;user-select:none;vertical-align:middle}@media(prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529}.btn:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.25);outline:0}.btn:disabled{opacity:.65;pointer-events:none}.btn-secondary{background-color:#6c757d;border-color:#6c757d;color:#fff}.btn-secondary:focus,.btn-secondary:hover{background-color:#5c636a;border-color:#565e64;color:#fff}.btn-secondary:focus{box-shadow:0 0 0 .25rem hsla(208,6%,54%,.5)}.btn-secondary.active,.btn-secondary:active{background-color:#565e64;border-color:#51585e;color:#fff}.btn-secondary.active:focus,.btn-secondary:active:focus{box-shadow:0 0 0 .25rem hsla(208,6%,54%,.5)}.btn-secondary:disabled{background-color:#6c757d;border-color:#6c757d;color:#fff}.btn-sm{border-radius:.2rem;font-size:.875rem;padding:.25rem .5rem}.nav{display:flex;flex-wrap:wrap;list-style:none;margin-bottom:0;padding-left:0}.nav-link{color:#0d6efd;display:block;padding:.5rem 1rem;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media(prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:#0a58ca}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{background:none;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem;margin-bottom:-1px}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6;isolation:isolate}.nav-tabs .nav-link.active{background-color:#fff;border-color:#dee2e6 #dee2e6 #fff;color:#495057}.breadcrumb{display:flex;flex-wrap:wrap;list-style:none;margin-bottom:1rem;padding:0}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{color:#6c757d;content:var(--bs-breadcrumb-divider,"/");float:left;padding-right:.5rem}.breadcrumb-item.active{color:#6c757d}.badge{border-radius:.25rem;color:#fff;display:inline-block;font-size:.75em;font-weight:700;line-height:1;padding:.35em .65em;text-align:center;vertical-align:baseline;white-space:nowrap}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{border:1px solid transparent;border-radius:.25rem;margin-bottom:1rem;padding:1rem;position:relative}.alert-danger{background-color:#f8d7da;border-color:#f5c2c7;color:#842029}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{background-color:#e9ecef;border-radius:.25rem;font-size:.75rem;height:1rem}.progress,.progress-bar{display:flex;overflow:hidden}.progress-bar{background-color:#0d6efd;color:#fff;flex-direction:column;justify-content:center;text-align:center;transition:width .6s ease;white-space:nowrap}@media(prefers-reduced-motion:reduce){.progress-bar{transition:none}}.list-group{border-radius:.25rem;display:flex;flex-direction:column;margin-bottom:0;padding-left:0}.list-group-item-action{color:#495057;text-align:inherit;width:100%}.list-group-item-action:focus,.list-group-item-action:hover{background-color:#f8f9fa;color:#495057;text-decoration:none;z-index:1}.list-group-item-action:active{background-color:#e9ecef;color:#212529}.list-group-item{background-color:#fff;border:1px solid rgba(0,0,0,.125);color:#212529;display:block;padding:.5rem 1rem;position:relative;text-decoration:none}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.list-group-item:disabled{background-color:#fff;color:#6c757d;pointer-events:none}.list-group-item.active{background-color:#0d6efd;border-color:#0d6efd;color:#fff;z-index:2}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{border-top-width:1px;margin-top:-1px}.tooltip{word-wrap:break-word;display:block;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:.875rem;font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.5;margin:0;opacity:0;position:absolute;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;z-index:1080}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}@keyframes placeholder-glow{50%{opacity:.2}}@keyframes placeholder-wave{to{mask-position:-200% 0}}.align-middle{vertical-align:middle!important}.overflow-auto{overflow:auto!important}.d-flex{display:flex!important}.border-bottom-0{border-bottom:0!important}.h-100{height:100%!important}.align-items-center{align-items:center!important}.mx-2{margin-left:.5rem!important;margin-right:.5rem!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.pe-4{padding-right:1.5rem!important}.fw-bold{font-weight:700!important}.text-center{text-align:center!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:#6c757d!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.rounded{border-radius:.25rem!important}:host{background-color:var(--bs-body-bg);color:var(--bs-body-color)}.bg-caution{background-color:var(--bs-caution-bg)!important}.bg-secondary{background-color:var(--bs-secondary-bg)!important}.bg-success{background-color:var(--bs-success-bg)!important}.bg-info{background-color:var(--bs-info-bg)!important}.bg-warning{background-color:var(--bs-warning-bg)!important}.bg-danger{background-color:var(--bs-danger-bg)!important}.btn,.btn:hover{color:var(--bs-body-color)}.btn:hover{text-decoration:none}.btn-secondary{color:var(--bs-btn-secondary-color)}.btn-secondary:hover{color:var(--bs-btn-secondary-hover-color)}.badge.bg-caution{color:var(--bs-badge-caution-color)}.badge.bg-secondary{color:var(--bs-badge-secondary-color)}.badge.bg-success{color:var(--bs-badge-success-color)}.badge.bg-info{color:var(--bs-badge-info-color)}.badge.bg-warning{color:var(--bs-badge-warning-color)}.badge.bg-danger{color:var(--bs-badge-danger-color)}.list-group-item{background-color:var(--bs-list-group-bg);border-color:var(--bs-list-group-border-color)}.list-group-item-action:focus,.list-group-item-action:hover{background-color:var(--bs-list-group-hover-bg);color:var(--bs-list-group-action-hover-color)}.list-group-item-action:active{background-color:var(--bs-list-group-action-active-bg);color:var(--bs-list-group-action-active-color)}.list-group-item-action{color:var(--bs-list-group-action-color)}.list-group-item.active{background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color);color:var(--bs-list-group-active-color)}a{color:var(--bs-link-color)}a:hover{color:var(--bs-link-hover-color)}.table{color:var(--bs-body-color)}.table-hover tbody tr:hover{background-color:var(--bs-table-bg-hover);color:var(--bs-body-color)}.table tbody,.table td,.table th,.table thead{border-color:var(--bs-table-border-color)}.progress{background-color:var(--bs-progress-bg)}.progress .progress-bar.bg-caution{color:var(--bs-badge-caution-color)}.progress .progress-bar.bg-secondary{color:var(--bs-badge-secondary-color)}.progress .progress-bar.bg-success{color:var(--bs-badge-success-color)}.progress .progress-bar.bg-info{color:var(--bs-badge-info-color)}.progress .progress-bar.bg-warning{color:var(--bs-badge-warning-color)}.progress .progress-bar.bg-danger{color:var(--bs-badge-danger-color)}.nav-tabs .nav-item.open .nav-link,.nav-tabs .nav-item.open .nav-link:focus,.nav-tabs .nav-item.open .nav-link:hover,.nav-tabs .nav-link,.nav-tabs .nav-link.active,.nav-tabs .nav-link.active:focus,.nav-tabs .nav-link.active:hover{color:var(--bs-link-color)}.nav-tabs{border-color:var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link:hover:focus{border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-link.active,.nav-tabs .nav-link.active:focus{background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color);color:var(--bs-nav-tabs-link-active-color)}.breadcrumb a{color:var(--bs-link-color)}.breadcrumb{background-color:var(--bs-breadcrumb-bg);padding:.75rem 1rem}.breadcrumb-item.active,.breadcrumb-item:before{color:var(--bs-breadcrumb-active-color)}',""]);const p=u},5043:(e,t,r)=>{"use strict";r.d(t,{Z:()=>a});var n=r(9601),o=r.n(n),i=r(2609),s=r.n(i)()(o());s.push([e.id,"",""]);const a=s},6773:(e,t,r)=>{"use strict";r.d(t,{Z:()=>d});var n=r(9601),o=r.n(n),i=r(2609),s=r.n(i),a=r(5863),l=r(4163),c=s()(o());c.i(a.Z),c.i(l.Z),c.push([e.id,"",""]);const d=c},4163:(e,t,r)=>{"use strict";r.d(t,{Z:()=>a});var n=r(9601),o=r.n(n),i=r(2609),s=r.n(i)()(o());s.push([e.id,'pre[class*="language-"].line-numbers {\n\tposition: relative;\n\tpadding-left: 3.8em;\n\tcounter-reset: linenumber;\n}\n\npre[class*="language-"].line-numbers > code {\n\tposition: relative;\n\twhite-space: inherit;\n}\n\n.line-numbers .line-numbers-rows {\n\tposition: absolute;\n\tpointer-events: none;\n\ttop: 0;\n\tfont-size: 100%;\n\tleft: -3.8em;\n\twidth: 3em; /* works for line-numbers below 1000 lines */\n\tletter-spacing: -1px;\n\tborder-right: 1px solid #999;\n\n\t-webkit-user-select: none;\n\t-moz-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none;\n\n}\n\n\t.line-numbers-rows > span {\n\t\tdisplay: block;\n\t\tcounter-increment: linenumber;\n\t}\n\n\t\t.line-numbers-rows > span:before {\n\t\t\tcontent: counter(linenumber);\n\t\t\tcolor: #999;\n\t\t\tdisplay: block;\n\t\t\tpadding-right: 0.8em;\n\t\t\ttext-align: right;\n\t\t}\n',""]);const a=s},5863:(e,t,r)=>{"use strict";r.d(t,{Z:()=>a});var n=r(9601),o=r.n(n),i=r(2609),s=r.n(i)()(o());s.push([e.id,"/**\n * GHColors theme by Avi Aryan (http://aviaryan.in)\n * Inspired by Github syntax coloring\n */\n\ncode[class*='language-'],\npre[class*='language-'] {\n  color: var(--prism-maintext);\n  font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;\n  direction: ltr;\n  font-size: 1em;\n  text-align: left;\n  white-space: pre;\n  word-spacing: normal;\n  word-break: normal;\n  line-height: 1.5;\n\n  -moz-tab-size: 4;\n  -o-tab-size: 4;\n  tab-size: 4;\n\n  -webkit-hyphens: none;\n  -moz-hyphens: none;\n  -ms-hyphens: none;\n  hyphens: none;\n}\n\npre > code[class*='language-'] {\n  font-size: 1em;\n}\n\n/* Code blocks */\npre[class*='language-'] {\n  padding: 1em;\n  margin: 0.5em 0;\n  overflow: auto;\n  border: 1px solid var(--prism-border);\n  border-radius: 0.25rem;\n}\n\n:not(pre) > code[class*='language-'],\npre[class*='language-'] {\n  background: var(--prism-background);\n}\n\n.token.comment,\n.token.prolog,\n.token.doctype,\n.token.italic,\n.token.cdata {\n  font-style: italic;\n}\n\n.token.important,\n.token.function,\n.token.bold {\n  font-weight: bold;\n}\n\n.token.namespace {\n  opacity: 0.7;\n}\n\n.token.atrule {\n  color: var(--prism-atrule);\n}\n.token.attr {\n  color: var(--prism-attr);\n}\n.token.attr-name {\n  color: var(--prism-attr-name);\n}\n.token.boolean {\n  color: var(--prism-boolean);\n}\n.token.builtin {\n  color: var(--prism-builtin);\n}\n.token.cdata {\n  color: var(--prism-cdata);\n}\n.token.changed {\n  color: var(--prism-changed);\n}\n.token.char {\n  color: var(--prism-char);\n}\n.token.comment {\n  color: var(--prism-comment);\n}\n.token.constant {\n  color: var(--prism-constant);\n}\n.token.deleted {\n  color: var(--prism-deleted);\n}\n.token.doctype {\n  color: var(--prism-doctype);\n}\n.token.entity {\n  color: var(--prism-entity);\n}\n.token.function {\n  color: var(--prism-function);\n}\n.token.inserted {\n  color: var(--prism-inserted);\n}\n.token.keyword {\n  color: var(--prism-keyword);\n}\n.token.number {\n  color: var(--prism-number);\n}\n.token.operator {\n  color: var(--prism-operator);\n}\n.token.prolog {\n  color: var(--prism-prolog);\n}\n.token.property {\n  color: var(--prism-property);\n}\n.token.punctuation {\n  color: var(--prism-punctuation);\n}\n.token.regex {\n  color: var(--prism-regex);\n}\n.token.selector {\n  color: var(--prism-selector);\n}\n.token.string {\n  color: var(--prism-string);\n}\n.token.symbol {\n  color: var(--prism-symbol);\n}\n.token.tag {\n  color: var(--prism-tag);\n}\n.token.url {\n  color: var(--prism-url);\n}\n.token.variable {\n  color: var(--prism-variable);\n}\n.token.placeholder {\n  color: var(--prism-placeholder);\n}\n.token.statement {\n  color: var(--prism-statement);\n}\n.token.attr-value {\n  color: var(--prism-attr-value);\n}\n.token.control {\n  color: var(--prism-control);\n}\n.token.directive {\n  color: var(--prism-directive);\n}\n.token.unit {\n  color: var(--prism-unit);\n}\n.token.important {\n  color: var(--prism-important);\n}\n",""]);const a=s},2609:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var r="",n=void 0!==t[5];return t[4]&&(r+="@supports (".concat(t[4],") {")),t[2]&&(r+="@media ".concat(t[2]," {")),n&&(r+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),r+=e(t),n&&(r+="}"),t[2]&&(r+="}"),t[4]&&(r+="}"),r})).join("")},t.i=function(e,r,n,o,i){"string"==typeof e&&(e=[[null,e,void 0]]);var s={};if(n)for(var a=0;a<this.length;a++){var l=this[a][0];null!=l&&(s[l]=!0)}for(var c=0;c<e.length;c++){var d=[].concat(e[c]);n&&s[d[0]]||(void 0!==i&&(void 0===d[5]||(d[1]="@layer".concat(d[5].length>0?" ".concat(d[5]):""," {").concat(d[1],"}")),d[5]=i),r&&(d[2]?(d[1]="@media ".concat(d[2]," {").concat(d[1],"}"),d[2]=r):d[2]=r),o&&(d[4]?(d[1]="@supports (".concat(d[4],") {").concat(d[1],"}"),d[4]=o):d[4]="".concat(o)),t.push(d))}},t}},8991:e=>{"use strict";e.exports=function(e,t){return t||(t={}),e?(e=String(e.__esModule?e.default:e),/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),t.hash&&(e+=t.hash),/["'() \t\n]|(%20)/.test(e)||t.needQuotes?'"'.concat(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):e):e}},9601:e=>{"use strict";e.exports=function(e){return e[1]}},5433:()=>{Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|interface|extends|implements|trait|instanceof|new)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}},8325:(e,t,r)=>{var n=function(e){var t=/\blang(?:uage)?-([\w-]+)\b/i,r=0,n={},o={manual:e.Prism&&e.Prism.manual,disableWorkerMessageHandler:e.Prism&&e.Prism.disableWorkerMessageHandler,util:{encode:function e(t){return t instanceof i?new i(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++r}),e.__id},clone:function e(t,r){var n,i;switch(r=r||{},o.util.type(t)){case"Object":if(i=o.util.objId(t),r[i])return r[i];for(var s in n={},r[i]=n,t)t.hasOwnProperty(s)&&(n[s]=e(t[s],r));return n;case"Array":return i=o.util.objId(t),r[i]?r[i]:(n=[],r[i]=n,t.forEach((function(t,o){n[o]=e(t,r)})),n);default:return t}},getLanguage:function(e){for(;e&&!t.test(e.className);)e=e.parentElement;return e?(e.className.match(t)||[,"none"])[1].toLowerCase():"none"},currentScript:function(){if("undefined"==typeof document)return null;if("currentScript"in document)return document.currentScript;try{throw new Error}catch(n){var e=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(n.stack)||[])[1];if(e){var t=document.getElementsByTagName("script");for(var r in t)if(t[r].src==e)return t[r]}return null}},isActive:function(e,t,r){for(var n="no-"+t;e;){var o=e.classList;if(o.contains(t))return!0;if(o.contains(n))return!1;e=e.parentElement}return!!r}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var r=o.util.clone(o.languages[e]);for(var n in t)r[n]=t[n];return r},insertBefore:function(e,t,r,n){var i=(n=n||o.languages)[e],s={};for(var a in i)if(i.hasOwnProperty(a)){if(a==t)for(var l in r)r.hasOwnProperty(l)&&(s[l]=r[l]);r.hasOwnProperty(a)||(s[a]=i[a])}var c=n[e];return n[e]=s,o.languages.DFS(o.languages,(function(t,r){r===c&&t!=e&&(this[t]=s)})),s},DFS:function e(t,r,n,i){i=i||{};var s=o.util.objId;for(var a in t)if(t.hasOwnProperty(a)){r.call(t,a,t[a],n||a);var l=t[a],c=o.util.type(l);"Object"!==c||i[s(l)]?"Array"!==c||i[s(l)]||(i[s(l)]=!0,e(l,r,a,i)):(i[s(l)]=!0,e(l,r,null,i))}}},plugins:{},highlightAll:function(e,t){o.highlightAllUnder(document,e,t)},highlightAllUnder:function(e,t,r){var n={callback:r,container:e,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};o.hooks.run("before-highlightall",n),n.elements=Array.prototype.slice.apply(n.container.querySelectorAll(n.selector)),o.hooks.run("before-all-elements-highlight",n);for(var i,s=0;i=n.elements[s++];)o.highlightElement(i,!0===t,n.callback)},highlightElement:function(r,n,i){var s=o.util.getLanguage(r),a=o.languages[s];r.className=r.className.replace(t,"").replace(/\s+/g," ")+" language-"+s;var l=r.parentElement;l&&"pre"===l.nodeName.toLowerCase()&&(l.className=l.className.replace(t,"").replace(/\s+/g," ")+" language-"+s);var c={element:r,language:s,grammar:a,code:r.textContent};function d(e){c.highlightedCode=e,o.hooks.run("before-insert",c),c.element.innerHTML=c.highlightedCode,o.hooks.run("after-highlight",c),o.hooks.run("complete",c),i&&i.call(c.element)}if(o.hooks.run("before-sanity-check",c),(l=c.element.parentElement)&&"pre"===l.nodeName.toLowerCase()&&!l.hasAttribute("tabindex")&&l.setAttribute("tabindex","0"),!c.code)return o.hooks.run("complete",c),void(i&&i.call(c.element));if(o.hooks.run("before-highlight",c),c.grammar)if(n&&e.Worker){var u=new Worker(o.filename);u.onmessage=function(e){d(e.data)},u.postMessage(JSON.stringify({language:c.language,code:c.code,immediateClose:!0}))}else d(o.highlight(c.code,c.grammar,c.language));else d(o.util.encode(c.code))},highlight:function(e,t,r){var n={code:e,grammar:t,language:r};return o.hooks.run("before-tokenize",n),n.tokens=o.tokenize(n.code,n.grammar),o.hooks.run("after-tokenize",n),i.stringify(o.util.encode(n.tokens),n.language)},tokenize:function(e,t){var r=t.rest;if(r){for(var n in r)t[n]=r[n];delete t.rest}var o=new l;return c(o,o.head,e),a(e,o,t,o.head,0),function(e){for(var t=[],r=e.head.next;r!==e.tail;)t.push(r.value),r=r.next;return t}(o)},hooks:{all:{},add:function(e,t){var r=o.hooks.all;r[e]=r[e]||[],r[e].push(t)},run:function(e,t){var r=o.hooks.all[e];if(r&&r.length)for(var n,i=0;n=r[i++];)n(t)}},Token:i};function i(e,t,r,n){this.type=e,this.content=t,this.alias=r,this.length=0|(n||"").length}function s(e,t,r,n){e.lastIndex=t;var o=e.exec(r);if(o&&n&&o[1]){var i=o[1].length;o.index+=i,o[0]=o[0].slice(i)}return o}function a(e,t,r,n,l,u){for(var h in r)if(r.hasOwnProperty(h)&&r[h]){var b=r[h];b=Array.isArray(b)?b:[b];for(var p=0;p<b.length;++p){if(u&&u.cause==h+","+p)return;var g=b[p],f=g.inside,m=!!g.lookbehind,v=!!g.greedy,y=g.alias;if(v&&!g.pattern.global){var w=g.pattern.toString().match(/[imsuy]*$/)[0];g.pattern=RegExp(g.pattern.source,w+"g")}for(var k=g.pattern||g,$=n.next,x=l;$!==t.tail&&!(u&&x>=u.reach);x+=$.value.length,$=$.next){var S=$.value;if(t.length>e.length)return;if(!(S instanceof i)){var A,_=1;if(v){if(!(A=s(k,x,e,m)))break;var M=A.index,C=A.index+A[0].length,E=x;for(E+=$.value.length;M>=E;)E+=($=$.next).value.length;if(x=E-=$.value.length,$.value instanceof i)continue;for(var T=$;T!==t.tail&&(E<C||"string"==typeof T.value);T=T.next)_++,E+=T.value.length;_--,S=e.slice(x,E),A.index-=x}else if(!(A=s(k,0,S,m)))continue;M=A.index;var P=A[0],z=S.slice(0,M),j=S.slice(M+P.length),F=x+S.length;u&&F>u.reach&&(u.reach=F);var N=$.prev;if(z&&(N=c(t,N,z),x+=z.length),d(t,N,_),$=c(t,N,new i(h,f?o.tokenize(P,f):P,y,P)),j&&c(t,$,j),_>1){var O={cause:h+","+p,reach:F};a(e,t,r,$.prev,x,O),u&&O.reach>u.reach&&(u.reach=O.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function c(e,t,r){var n=t.next,o={value:r,prev:t,next:n};return t.next=o,n.prev=o,e.length++,o}function d(e,t,r){for(var n=t.next,o=0;o<r&&n!==e.tail;o++)n=n.next;t.next=n,n.prev=t,e.length-=o}if(e.Prism=o,i.stringify=function e(t,r){if("string"==typeof t)return t;if(Array.isArray(t)){var n="";return t.forEach((function(t){n+=e(t,r)})),n}var i={type:t.type,content:e(t.content,r),tag:"span",classes:["token",t.type],attributes:{},language:r},s=t.alias;s&&(Array.isArray(s)?Array.prototype.push.apply(i.classes,s):i.classes.push(s)),o.hooks.run("wrap",i);var a="";for(var l in i.attributes)a+=" "+l+'="'+(i.attributes[l]||"").replace(/"/g,"&quot;")+'"';return"<"+i.tag+' class="'+i.classes.join(" ")+'"'+a+">"+i.content+"</"+i.tag+">"},!e.document)return e.addEventListener?(o.disableWorkerMessageHandler||e.addEventListener("message",(function(t){var r=JSON.parse(t.data),n=r.language,i=r.code,s=r.immediateClose;e.postMessage(o.highlight(i,o.languages[n],n)),s&&e.close()}),!1),o):o;var u=o.util.currentScript();function h(){o.manual||o.highlightAll()}if(u&&(o.filename=u.src,u.hasAttribute("data-manual")&&(o.manual=!0)),!o.manual){var b=document.readyState;"loading"===b||"interactive"===b&&u&&u.defer?document.addEventListener("DOMContentLoaded",h):window.requestAnimationFrame?window.requestAnimationFrame(h):window.setTimeout(h,16)}return o}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{});e.exports&&(e.exports=n),void 0!==r.g&&(r.g.Prism=n)},9016:()=>{!function(e){function t(e,t){return e.replace(/<<(\d+)>>/g,(function(e,r){return"(?:"+t[+r]+")"}))}function r(e,r,n){return RegExp(t(e,r),n||"")}function n(e,t){for(var r=0;r<t;r++)e=e.replace(/<<self>>/g,(function(){return"(?:"+e+")"}));return e.replace(/<<self>>/g,"[^\\s\\S]")}var o="bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void",i="class enum interface record struct",s="add alias and ascending async await by descending from(?=\\s*(?:\\w|$)) get global group into init(?=\\s*;) join let nameof not notnull on or orderby partial remove select set unmanaged value when where with(?=\\s*{)",a="abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield";function l(e){return"\\b(?:"+e.trim().replace(/ /g,"|")+")\\b"}var c=l(i),d=RegExp(l(o+" "+i+" "+s+" "+a)),u=l(i+" "+s+" "+a),h=l(o+" "+i+" "+a),b=n(/<(?:[^<>;=+\-*/%&|^]|<<self>>)*>/.source,2),p=n(/\((?:[^()]|<<self>>)*\)/.source,2),g=/@?\b[A-Za-z_]\w*\b/.source,f=t(/<<0>>(?:\s*<<1>>)?/.source,[g,b]),m=t(/(?!<<0>>)<<1>>(?:\s*\.\s*<<1>>)*/.source,[u,f]),v=/\[\s*(?:,\s*)*\]/.source,y=t(/<<0>>(?:\s*(?:\?\s*)?<<1>>)*(?:\s*\?)?/.source,[m,v]),w=t(/[^,()<>[\];=+\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source,[b,p,v]),k=t(/\(<<0>>+(?:,<<0>>+)+\)/.source,[w]),$=t(/(?:<<0>>|<<1>>)(?:\s*(?:\?\s*)?<<2>>)*(?:\s*\?)?/.source,[k,m,v]),x={keyword:d,punctuation:/[<>()?,.:[\]]/},S=/'(?:[^\r\n'\\]|\\.|\\[Uux][\da-fA-F]{1,8})'/.source,A=/"(?:\\.|[^\\"\r\n])*"/.source,_=/@"(?:""|\\[\s\S]|[^\\"])*"(?!")/.source;e.languages.csharp=e.languages.extend("clike",{string:[{pattern:r(/(^|[^$\\])<<0>>/.source,[_]),lookbehind:!0,greedy:!0},{pattern:r(/(^|[^@$\\])<<0>>/.source,[A]),lookbehind:!0,greedy:!0},{pattern:RegExp(S),greedy:!0,alias:"character"}],"class-name":[{pattern:r(/(\busing\s+static\s+)<<0>>(?=\s*;)/.source,[m]),lookbehind:!0,inside:x},{pattern:r(/(\busing\s+<<0>>\s*=\s*)<<1>>(?=\s*;)/.source,[g,$]),lookbehind:!0,inside:x},{pattern:r(/(\busing\s+)<<0>>(?=\s*=)/.source,[g]),lookbehind:!0},{pattern:r(/(\b<<0>>\s+)<<1>>/.source,[c,f]),lookbehind:!0,inside:x},{pattern:r(/(\bcatch\s*\(\s*)<<0>>/.source,[m]),lookbehind:!0,inside:x},{pattern:r(/(\bwhere\s+)<<0>>/.source,[g]),lookbehind:!0},{pattern:r(/(\b(?:is(?:\s+not)?|as)\s+)<<0>>/.source,[y]),lookbehind:!0,inside:x},{pattern:r(/\b<<0>>(?=\s+(?!<<1>>|with\s*\{)<<2>>(?:\s*[=,;:{)\]]|\s+(?:in|when)\b))/.source,[$,h,g]),inside:x}],keyword:d,number:/(?:\b0(?:x[\da-f_]*[\da-f]|b[01_]*[01])|(?:\B\.\d+(?:_+\d+)*|\b\d+(?:_+\d+)*(?:\.\d+(?:_+\d+)*)?)(?:e[-+]?\d+(?:_+\d+)*)?)(?:ul|lu|[dflmu])?\b/i,operator:/>>=?|<<=?|[-=]>|([-+&|])\1|~|\?\?=?|[-+*/%&|^!=<>]=?/,punctuation:/\?\.?|::|[{}[\];(),.:]/}),e.languages.insertBefore("csharp","number",{range:{pattern:/\.\./,alias:"operator"}}),e.languages.insertBefore("csharp","punctuation",{"named-parameter":{pattern:r(/([(,]\s*)<<0>>(?=\s*:)/.source,[g]),lookbehind:!0,alias:"punctuation"}}),e.languages.insertBefore("csharp","class-name",{namespace:{pattern:r(/(\b(?:namespace|using)\s+)<<0>>(?:\s*\.\s*<<0>>)*(?=\s*[;{])/.source,[g]),lookbehind:!0,inside:{punctuation:/\./}},"type-expression":{pattern:r(/(\b(?:default|typeof|sizeof)\s*\(\s*(?!\s))(?:[^()\s]|\s(?!\s)|<<0>>)*(?=\s*\))/.source,[p]),lookbehind:!0,alias:"class-name",inside:x},"return-type":{pattern:r(/<<0>>(?=\s+(?:<<1>>\s*(?:=>|[({]|\.\s*this\s*\[)|this\s*\[))/.source,[$,m]),inside:x,alias:"class-name"},"constructor-invocation":{pattern:r(/(\bnew\s+)<<0>>(?=\s*[[({])/.source,[$]),lookbehind:!0,inside:x,alias:"class-name"},"generic-method":{pattern:r(/<<0>>\s*<<1>>(?=\s*\()/.source,[g,b]),inside:{function:r(/^<<0>>/.source,[g]),generic:{pattern:RegExp(b),alias:"class-name",inside:x}}},"type-list":{pattern:r(/\b((?:<<0>>\s+<<1>>|record\s+<<1>>\s*<<5>>|where\s+<<2>>)\s*:\s*)(?:<<3>>|<<4>>|<<1>>\s*<<5>>|<<6>>)(?:\s*,\s*(?:<<3>>|<<4>>|<<6>>))*(?=\s*(?:where|[{;]|=>|$))/.source,[c,f,g,$,d.source,p,/\bnew\s*\(\s*\)/.source]),lookbehind:!0,inside:{"record-arguments":{pattern:r(/(^(?!new\s*\()<<0>>\s*)<<1>>/.source,[f,p]),lookbehind:!0,greedy:!0,inside:e.languages.csharp},keyword:d,"class-name":{pattern:RegExp($),greedy:!0,inside:x},punctuation:/[,()]/}},preprocessor:{pattern:/(^[\t ]*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(#)\b(?:define|elif|else|endif|endregion|error|if|line|nullable|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}});var M=A+"|"+S,C=t(/\/(?![*/])|\/\/[^\r\n]*[\r\n]|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>/.source,[M]),E=n(t(/[^"'/()]|<<0>>|\(<<self>>*\)/.source,[C]),2),T=/\b(?:assembly|event|field|method|module|param|property|return|type)\b/.source,P=t(/<<0>>(?:\s*\(<<1>>*\))?/.source,[m,E]);e.languages.insertBefore("csharp","class-name",{attribute:{pattern:r(/((?:^|[^\s\w>)?])\s*\[\s*)(?:<<0>>\s*:\s*)?<<1>>(?:\s*,\s*<<1>>)*(?=\s*\])/.source,[T,P]),lookbehind:!0,greedy:!0,inside:{target:{pattern:r(/^<<0>>(?=\s*:)/.source,[T]),alias:"keyword"},"attribute-arguments":{pattern:r(/\(<<0>>*\)/.source,[E]),inside:e.languages.csharp},"class-name":{pattern:RegExp(m),inside:{punctuation:/\./}},punctuation:/[:,]/}}});var z=/:[^}\r\n]+/.source,j=n(t(/[^"'/()]|<<0>>|\(<<self>>*\)/.source,[C]),2),F=t(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[j,z]),N=n(t(/[^"'/()]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>|\(<<self>>*\)/.source,[M]),2),O=t(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[N,z]);function R(t,n){return{interpolation:{pattern:r(/((?:^|[^{])(?:\{\{)*)<<0>>/.source,[t]),lookbehind:!0,inside:{"format-string":{pattern:r(/(^\{(?:(?![}:])<<0>>)*)<<1>>(?=\}$)/.source,[n,z]),lookbehind:!0,inside:{punctuation:/^:/}},punctuation:/^\{|\}$/,expression:{pattern:/[\s\S]+/,alias:"language-csharp",inside:e.languages.csharp}}},string:/[\s\S]+/}}e.languages.insertBefore("csharp","string",{"interpolation-string":[{pattern:r(/(^|[^\\])(?:\$@|@\$)"(?:""|\\[\s\S]|\{\{|<<0>>|[^\\{"])*"/.source,[F]),lookbehind:!0,greedy:!0,inside:R(F,j)},{pattern:r(/(^|[^@\\])\$"(?:\\.|\{\{|<<0>>|[^\\"{])*"/.source,[O]),lookbehind:!0,greedy:!0,inside:R(O,N)}]})}(Prism),Prism.languages.dotnet=Prism.languages.cs=Prism.languages.csharp},9472:()=>{!function(e){var t=/(?:\r?\n|\r)[ \t]*\|.+\|(?:(?!\|).)*/.source;e.languages.gherkin={pystring:{pattern:/("""|''')[\s\S]+?\1/,alias:"string"},comment:{pattern:/(^[ \t]*)#.*/m,lookbehind:!0},tag:{pattern:/(^[ \t]*)@\S*/m,lookbehind:!0},feature:{pattern:/((?:^|\r?\n|\r)[ \t]*)(?:Ability|Ahoy matey!|Arwedd|Aspekt|Besigheid Behoefte|Business Need|Caracteristica|Característica|Egenskab|Egenskap|Eiginleiki|Feature|Fīča|Fitur|Fonctionnalité|Fonksyonalite|Funcionalidade|Funcionalitat|Functionalitate|Funcţionalitate|Funcționalitate|Functionaliteit|Fungsi|Funkcia|Funkcija|Funkcionalitāte|Funkcionalnost|Funkcja|Funksie|Funktionalität|Funktionalitéit|Funzionalità|Hwaet|Hwæt|Jellemző|Karakteristik|laH|Lastnost|Mak|Mogucnost|Mogućnost|Moznosti|Možnosti|OH HAI|Omadus|Ominaisuus|Osobina|Özellik|perbogh|poQbogh malja'|Potrzeba biznesowa|Požadavek|Požiadavka|Pretty much|Qap|Qu'meH 'ut|Savybė|Tính năng|Trajto|Vermoë|Vlastnosť|Właściwość|Značilnost|Δυνατότητα|Λειτουργία|Могућност|Мөмкинлек|Особина|Свойство|Үзенчәлеклелек|Функционал|Функционалност|Функция|Функціонал|תכונה|خاصية|خصوصیت|صلاحیت|کاروبار کی ضرورت|وِیژگی|रूप लेख|ਖਾਸੀਅਤ|ਨਕਸ਼ ਨੁਹਾਰ|ਮੁਹਾਂਦਰਾ|గుణము|ಹೆಚ್ಚಳ|ความต้องการทางธุรกิจ|ความสามารถ|โครงหลัก|기능|フィーチャ|功能|機能):(?:[^:\r\n]+(?:\r?\n|\r|$))*/,lookbehind:!0,inside:{important:{pattern:/(:)[^\r\n]+/,lookbehind:!0},keyword:/[^:\r\n]+:/}},scenario:{pattern:/(^[ \t]*)(?:Abstract Scenario|Abstrakt Scenario|Achtergrond|Aer|Ær|Agtergrond|All y'all|Antecedentes|Antecedents|Atburðarás|Atburðarásir|Awww, look mate|B4|Background|Baggrund|Bakgrund|Bakgrunn|Bakgrunnur|Beispiele|Beispiller|Bối cảnh|Cefndir|Cenario|Cenário|Cenario de Fundo|Cenário de Fundo|Cenarios|Cenários|Contesto|Context|Contexte|Contexto|Conto|Contoh|Contone|Dæmi|Dasar|Dead men tell no tales|Delineacao do Cenario|Delineação do Cenário|Dis is what went down|Dữ liệu|Dyagram senaryo|Dyagram Senaryo|Egzanp|Ejemplos|Eksempler|Ekzemploj|Enghreifftiau|Esbozo do escenario|Escenari|Escenario|Esempi|Esquema de l'escenari|Esquema del escenario|Esquema do Cenario|Esquema do Cenário|Examples|EXAMPLZ|Exempel|Exemple|Exemples|Exemplos|First off|Fono|Forgatókönyv|Forgatókönyv vázlat|Fundo|Geçmiş|ghantoH|Grundlage|Hannergrond|Háttér|Heave to|Istorik|Juhtumid|Keadaan|Khung kịch bản|Khung tình huống|Kịch bản|Koncept|Konsep skenario|Kontèks|Kontekst|Kontekstas|Konteksts|Kontext|Konturo de la scenaro|Latar Belakang|lut|lut chovnatlh|lutmey|Lýsing Atburðarásar|Lýsing Dæma|Menggariskan Senario|MISHUN|MISHUN SRSLY|mo'|Náčrt Scenára|Náčrt Scénáře|Náčrt Scenáru|Oris scenarija|Örnekler|Osnova|Osnova Scenára|Osnova scénáře|Osnutek|Ozadje|Paraugs|Pavyzdžiai|Példák|Piemēri|Plan du scénario|Plan du Scénario|Plan senaryo|Plan Senaryo|Plang vum Szenario|Pozadí|Pozadie|Pozadina|Príklady|Příklady|Primer|Primeri|Primjeri|Przykłady|Raamstsenaarium|Reckon it's like|Rerefons|Scenár|Scénář|Scenarie|Scenarij|Scenarijai|Scenarijaus šablonas|Scenariji|Scenārijs|Scenārijs pēc parauga|Scenarijus|Scenario|Scénario|Scenario Amlinellol|Scenario Outline|Scenario Template|Scenariomal|Scenariomall|Scenarios|Scenariu|Scenariusz|Scenaro|Schema dello scenario|Se ðe|Se the|Se þe|Senario|Senaryo|Senaryo deskripsyon|Senaryo Deskripsyon|Senaryo taslağı|Shiver me timbers|Situācija|Situai|Situasie|Situasie Uiteensetting|Skenario|Skenario konsep|Skica|Structura scenariu|Structură scenariu|Struktura scenarija|Stsenaarium|Swa|Swa hwaer swa|Swa hwær swa|Szablon scenariusza|Szenario|Szenariogrundriss|Tapaukset|Tapaus|Tapausaihio|Taust|Tausta|Template Keadaan|Template Senario|Template Situai|The thing of it is|Tình huống|Variantai|Voorbeelde|Voorbeelden|Wharrimean is|Yo-ho-ho|You'll wanna|Założenia|Παραδείγματα|Περιγραφή Σεναρίου|Σενάρια|Σενάριο|Υπόβαθρο|Кереш|Контекст|Концепт|Мисаллар|Мисоллар|Основа|Передумова|Позадина|Предистория|Предыстория|Приклади|Пример|Примери|Примеры|Рамка на сценарий|Скица|Структура сценарија|Структура сценария|Структура сценарію|Сценарий|Сценарий структураси|Сценарийның төзелеше|Сценарији|Сценарио|Сценарій|Тарих|Үрнәкләр|דוגמאות|רקע|תבנית תרחיש|תרחיש|الخلفية|الگوی سناریو|امثلة|پس منظر|زمینه|سناریو|سيناريو|سيناريو مخطط|مثالیں|منظر نامے کا خاکہ|منظرنامہ|نمونه ها|उदाहरण|परिदृश्य|परिदृश्य रूपरेखा|पृष्ठभूमि|ਉਦਾਹਰਨਾਂ|ਪਟਕਥਾ|ਪਟਕਥਾ ਢਾਂਚਾ|ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ|ਪਿਛੋਕੜ|ఉదాహరణలు|కథనం|నేపథ్యం|సన్నివేశం|ಉದಾಹರಣೆಗಳು|ಕಥಾಸಾರಾಂಶ|ವಿವರಣೆ|ಹಿನ್ನೆಲೆ|โครงสร้างของเหตุการณ์|ชุดของตัวอย่าง|ชุดของเหตุการณ์|แนวคิด|สรุปเหตุการณ์|เหตุการณ์|배경|시나리오|시나리오 개요|예|サンプル|シナリオ|シナリオアウトライン|シナリオテンプレ|シナリオテンプレート|テンプレ|例|例子|剧本|剧本大纲|劇本|劇本大綱|场景|场景大纲|場景|場景大綱|背景):[^:\r\n]*/m,lookbehind:!0,inside:{important:{pattern:/(:)[^\r\n]*/,lookbehind:!0},keyword:/[^:\r\n]+:/}},"table-body":{pattern:RegExp("("+t+")(?:"+t+")+"),lookbehind:!0,inside:{outline:{pattern:/<[^>]+>/,alias:"variable"},td:{pattern:/\s*[^\s|][^|]*/,alias:"string"},punctuation:/\|/}},"table-head":{pattern:RegExp(t),inside:{th:{pattern:/\s*[^\s|][^|]*/,alias:"variable"},punctuation:/\|/}},atrule:{pattern:/(^[ \t]+)(?:'ach|'a|'ej|7|a|A také|A taktiež|A tiež|A zároveň|Aber|Ac|Adott|Akkor|Ak|Aleshores|Ale|Ali|Allora|Alors|Als|Ama|Amennyiben|Amikor|Ampak|an|AN|Ananging|And y'all|And|Angenommen|Anrhegedig a|An|Apabila|Atès|Atesa|Atunci|Avast!|Aye|A|awer|Bagi|Banjur|Bet|Biết|Blimey!|Buh|But at the end of the day I reckon|But y'all|But|BUT|Cal|Când|Cando|Cand|Ce|Cuando|Če|Ða ðe|Ða|Dadas|Dada|Dados|Dado|DaH ghu' bejlu'|dann|Dann|Dano|Dan|Dar|Dat fiind|Data|Date fiind|Date|Dati fiind|Dati|Daţi fiind|Dați fiind|Dato|DEN|Den youse gotta|Dengan|De|Diberi|Diyelim ki|Donada|Donat|Donitaĵo|Do|Dun|Duota|Ðurh|Eeldades|Ef|Eğer ki|Entao|Então|Entón|Entonces|En|Epi|E|És|Etant donnée|Etant donné|Et|Étant données|Étant donnée|Étant donné|Etant données|Etant donnés|Étant donnés|Fakat|Gangway!|Gdy|Gegeben seien|Gegeben sei|Gegeven|Gegewe|ghu' noblu'|Gitt|Given y'all|Given|Givet|Givun|Ha|Cho|I CAN HAZ|In|Ir|It's just unbelievable|I|Ja|Jeśli|Jeżeli|Kadar|Kada|Kad|Kai|Kaj|Když|Keď|Kemudian|Ketika|Khi|Kiedy|Ko|Kuid|Kui|Kun|Lan|latlh|Le sa a|Let go and haul|Le|Lè sa a|Lè|Logo|Lorsqu'<|Lorsque|mä|Maar|Mais|Mając|Majd|Maka|Manawa|Mas|Ma|Menawa|Men|Mutta|Nalikaning|Nalika|Nanging|Når|När|Nato|Nhưng|Niin|Njuk|O zaman|Og|Och|Oletetaan|Onda|Ond|Oraz|Pak|Pero|Però|Podano|Pokiaľ|Pokud|Potem|Potom|Privzeto|Pryd|qaSDI'|Quando|Quand|Quan|Så|Sed|Se|Siis|Sipoze ke|Sipoze Ke|Sipoze|Si|Şi|Și|Soit|Stel|Tada|Tad|Takrat|Tak|Tapi|Ter|Tetapi|Tha the|Tha|Then y'all|Then|Thì|Thurh|Toda|Too right|ugeholl|Und|Un|Và|vaj|Vendar|Ve|wann|Wanneer|WEN|Wenn|When y'all|When|Wtedy|Wun|Y'know|Yeah nah|Yna|Youse know like when|Youse know when youse got|Y|Za predpokladu|Za předpokladu|Zadani|Zadano|Zadan|Zadate|Zadato|Zakładając|Zaradi|Zatati|Þa þe|Þa|Þá|Þegar|Þurh|Αλλά|Δεδομένου|Και|Όταν|Τότε|А також|Агар|Але|Али|Аммо|А|Әгәр|Әйтик|Әмма|Бирок|Ва|Вә|Дадено|Дано|Допустим|Если|Задате|Задати|Задато|И|І|К тому же|Када|Кад|Когато|Когда|Коли|Ләкин|Лекин|Нәтиҗәдә|Нехай|Но|Онда|Припустимо, що|Припустимо|Пусть|Также|Та|Тогда|Тоді|То|Унда|Һәм|Якщо|אבל|אזי|אז|בהינתן|וגם|כאשר|آنگاه|اذاً|اگر|اما|اور|با فرض|بالفرض|بفرض|پھر|تب|ثم|جب|عندما|فرض کیا|لكن|لیکن|متى|هنگامی|و|अगर|और|कदा|किन्तु|चूंकि|जब|तथा|तदा|तब|परन्तु|पर|यदि|ਅਤੇ|ਜਦੋਂ|ਜਿਵੇਂ ਕਿ|ਜੇਕਰ|ਤਦ|ਪਰ|అప్పుడు|ఈ పరిస్థితిలో|కాని|చెప్పబడినది|మరియు|ಆದರೆ|ನಂತರ|ನೀಡಿದ|ಮತ್ತು|ಸ್ಥಿತಿಯನ್ನು|กำหนดให้|ดังนั้น|แต่|เมื่อ|และ|그러면<|그리고<|단<|만약<|만일<|먼저<|조건<|하지만<|かつ<|しかし<|ただし<|ならば<|もし<|並且<|但し<|但是<|假如<|假定<|假設<|假设<|前提<|同时<|同時<|并且<|当<|當<|而且<|那么<|那麼<)(?=[ \t])/m,lookbehind:!0},string:{pattern:/"(?:\\.|[^"\\\r\n])*"|'(?:\\.|[^'\\\r\n])*'/,inside:{outline:{pattern:/<[^>]+>/,alias:"variable"}}},outline:{pattern:/<[^>]+>/,alias:"variable"}}}(Prism)},2503:()=>{!function(e){var t=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,r=/(^|[^\w.])(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source,n={pattern:RegExp(r+/[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};e.languages.java=e.languages.extend("clike",{"class-name":[n,{pattern:RegExp(r+/[A-Z]\w*(?=\s+\w+\s*[;,=()])/.source),lookbehind:!0,inside:n.inside}],keyword:t,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0}}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":n,keyword:t,punctuation:/[<>(),.:]/,operator:/[?&|]/}},namespace:{pattern:RegExp(/(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)(?!<keyword>)[a-z]\w*(?:\.[a-z]\w*)*\.?/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0,inside:{punctuation:/\./}}})}(Prism)},9980:()=>{Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:prototype|constructor))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:/\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/,operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/,Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),Prism.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}}}),Prism.languages.markup&&(Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),Prism.languages.js=Prism.languages.javascript},6854:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(r,n,o,i){if(r.language===n){var s=r.tokenStack=[];r.code=r.code.replace(o,(function(e){if("function"==typeof i&&!i(e))return e;for(var o,a=s.length;-1!==r.code.indexOf(o=t(n,a));)++a;return s[a]=e,o})),r.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(r,n){if(r.language===n&&r.tokenStack){r.grammar=e.languages[n];var o=0,i=Object.keys(r.tokenStack);!function s(a){for(var l=0;l<a.length&&!(o>=i.length);l++){var c=a[l];if("string"==typeof c||c.content&&"string"==typeof c.content){var d=i[o],u=r.tokenStack[d],h="string"==typeof c?c:c.content,b=t(n,d),p=h.indexOf(b);if(p>-1){++o;var g=h.substring(0,p),f=new e.Token(n,e.tokenize(u,r.grammar),"language-"+n,u),m=h.substring(p+b.length),v=[];g&&v.push.apply(v,s([g])),v.push(f),m&&v.push.apply(v,s([m])),"string"==typeof c?a.splice.apply(a,[l,1].concat(v)):c.content=v}}else c.content&&s(c.content)}return a}(r.tokens)}}}})}(Prism)},4335:()=>{Prism.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.languages.markup.doctype.inside["internal-subset"].inside=Prism.languages.markup,Prism.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&amp;/,"&"))})),Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(e,t){var r={};r["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:Prism.languages[t]},r.cdata=/^<!\[CDATA\[|\]\]>$/i;var n={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:r}};n["language-"+t]={pattern:/[\s\S]+/,inside:Prism.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:n},Prism.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(Prism.languages.markup.tag,"addAttribute",{value:function(e,t){Prism.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:Prism.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup,Prism.languages.xml=Prism.languages.extend("markup",{}),Prism.languages.ssml=Prism.languages.xml,Prism.languages.atom=Prism.languages.xml,Prism.languages.rss=Prism.languages.xml},9945:()=>{!function(e){var t=/\/\*[\s\S]*?\*\/|\/\/.*|#(?!\[).*/,r=[{pattern:/\b(?:false|true)\b/i,alias:"boolean"},{pattern:/(::\s*)\b[a-z_]\w*\b(?!\s*\()/i,greedy:!0,lookbehind:!0},{pattern:/(\b(?:case|const)\s+)\b[a-z_]\w*(?=\s*[;=])/i,greedy:!0,lookbehind:!0},/\b(?:null)\b/i,/\b[A-Z_][A-Z0-9_]*\b(?!\s*\()/],n=/\b0b[01]+(?:_[01]+)*\b|\b0o[0-7]+(?:_[0-7]+)*\b|\b0x[\da-f]+(?:_[\da-f]+)*\b|(?:\b\d+(?:_\d+)*\.?(?:\d+(?:_\d+)*)?|\B\.\d+)(?:e[+-]?\d+)?/i,o=/<?=>|\?\?=?|\.{3}|\??->|[!=]=?=?|::|\*\*=?|--|\+\+|&&|\|\||<<|>>|[?~]|[/^|%*&<>.+-]=?/,i=/[{}\[\](),:;]/;e.languages.php={delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:"important"},comment:t,variable:/\$+(?:\w+\b|(?=\{))/i,package:{pattern:/(namespace\s+|use\s+(?:function\s+)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,lookbehind:!0,inside:{punctuation:/\\/}},"class-name-definition":{pattern:/(\b(?:class|enum|interface|trait)\s+)\b[a-z_]\w*(?!\\)\b/i,lookbehind:!0,alias:"class-name"},"function-definition":{pattern:/(\bfunction\s+)[a-z_]\w*(?=\s*\()/i,lookbehind:!0,alias:"function"},keyword:[{pattern:/(\(\s*)\b(?:bool|boolean|int|integer|float|string|object|array)\b(?=\s*\))/i,alias:"type-casting",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)\b(?:bool|int|float|string|object|array(?!\s*\()|mixed|self|static|callable|iterable|(?:null|false)(?=\s*\|))\b(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*[\w|]\|\s*)(?:null|false)\b(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b(?:bool|int|float|string|object|void|array(?!\s*\()|mixed|self|static|callable|iterable|(?:null|false)(?=\s*\|))\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?[\w|]\|\s*)(?:null|false)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/\b(?:bool|int|float|string|object|void|array(?!\s*\()|mixed|iterable|(?:null|false)(?=\s*\|))\b/i,alias:"type-declaration",greedy:!0},{pattern:/(\|\s*)(?:null|false)\b/i,alias:"type-declaration",greedy:!0,lookbehind:!0},{pattern:/\b(?:parent|self|static)(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(\byield\s+)from\b/i,lookbehind:!0},/\bclass\b/i,{pattern:/((?:^|[^\s>:]|(?:^|[^-])>|(?:^|[^:]):)\s*)\b(?:__halt_compiler|abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|namespace|match|new|or|parent|print|private|protected|public|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield)\b/i,lookbehind:!0}],"argument-name":{pattern:/([(,]\s+)\b[a-z_]\w*(?=\s*:(?!:))/i,lookbehind:!0},"class-name":[{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self|\s+static))\s+|\bcatch\s*\()\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/(\|\s*)\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/\b[a-z_]\w*(?!\\)\b(?=\s*\|)/i,greedy:!0},{pattern:/(\|\s*)(?:\\?\b[a-z_]\w*)+\b/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(?:\\?\b[a-z_]\w*)+\b(?=\s*\|)/i,alias:"class-name-fully-qualified",greedy:!0,inside:{punctuation:/\\/}},{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self\b|\s+static\b))\s+|\bcatch\s*\()(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*\$)/i,alias:"type-declaration",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-declaration"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*::)/i,alias:["class-name-fully-qualified","static-context"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/([(,?]\s*)[a-z_]\w*(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-hint"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b[a-z_]\w*(?!\\)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:["class-name-fully-qualified","return-type"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:r,function:{pattern:/(^|[^\\\w])\\?[a-z_](?:[\w\\]*\w)?(?=\s*\()/i,lookbehind:!0,inside:{punctuation:/\\/}},property:{pattern:/(->\s*)\w+/,lookbehind:!0},number:n,operator:o,punctuation:i};var s={pattern:/\{\$(?:\{(?:\{[^{}]+\}|[^{}]+)\}|[^{}])+\}|(^|[^\\{])\$+(?:\w+(?:\[[^\r\n\[\]]+\]|->\w+)?)/,lookbehind:!0,inside:e.languages.php},a=[{pattern:/<<<'([^']+)'[\r\n](?:.*[\r\n])*?\1;/,alias:"nowdoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},{pattern:/<<<(?:"([^"]+)"[\r\n](?:.*[\r\n])*?\1;|([a-z_]\w*)[\r\n](?:.*[\r\n])*?\2;)/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:s}},{pattern:/`(?:\\[\s\S]|[^\\`])*`/,alias:"backtick-quoted-string",greedy:!0},{pattern:/'(?:\\[\s\S]|[^\\'])*'/,alias:"single-quoted-string",greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,alias:"double-quoted-string",greedy:!0,inside:{interpolation:s}}];e.languages.insertBefore("php","variable",{string:a,attribute:{pattern:/#\[(?:[^"'\/#]|\/(?![*/])|\/\/.*$|#(?!\[).*$|\/\*(?:[^*]|\*(?!\/))*\*\/|"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*')+\](?=\s*[a-z$#])/im,greedy:!0,inside:{"attribute-content":{pattern:/^(#\[)[\s\S]+(?=\]$)/,lookbehind:!0,inside:{comment:t,string:a,"attribute-class-name":[{pattern:/([^:]|^)\b[a-z_]\w*(?!\\)\b/i,alias:"class-name",greedy:!0,lookbehind:!0},{pattern:/([^:]|^)(?:\\?\b[a-z_]\w*)+/i,alias:["class-name","class-name-fully-qualified"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:r,number:n,operator:o,punctuation:i}},delimiter:{pattern:/^#\[|\]$/,alias:"punctuation"}}}}),e.hooks.add("before-tokenize",(function(t){/<\?/.test(t.code)&&e.languages["markup-templating"].buildPlaceholders(t,"php",/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#(?!\[))(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|#\[|\/\*(?:[^*]|\*(?!\/))*(?:\*\/|$))*?(?:\?>|$)/gi)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"php")}))}(Prism)},2886:()=>{Prism.languages.scala=Prism.languages.extend("java",{"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/<-|=>|\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\b/,number:/\b0x(?:[\da-f]*\.)?[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e\d+)?[dfl]?/i,builtin:/\b(?:String|Int|Long|Short|Byte|Boolean|Double|Float|Char|Any|AnyRef|AnyVal|Unit|Nothing)\b/,symbol:/'[^\d\s\\]\w*/}),delete Prism.languages.scala["class-name"],delete Prism.languages.scala.function},6836:()=>{!function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:string|Function|any|number|boolean|Array|symbol|console|Promise|unknown|never)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|as|declare|implements|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter;var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(Prism)},6488:()=>{"undefined"!=typeof Prism&&"undefined"!=typeof document&&document.createRange&&(Prism.plugins.KeepMarkup=!0,Prism.hooks.add("before-highlight",(function(e){if(e.element.children.length&&Prism.util.isActive(e.element,"keep-markup",!0)){var t=0,r=[],n=function(e,o){var i={};o||(i.clone=e.cloneNode(!1),i.posOpen=t,r.push(i));for(var s=0,a=e.childNodes.length;s<a;s++){var l=e.childNodes[s];1===l.nodeType?n(l):3===l.nodeType&&(t+=l.data.length)}o||(i.posClose=t)};n(e.element,!0),r&&r.length&&(e.keepMarkup=r)}})),Prism.hooks.add("after-highlight",(function(e){if(e.keepMarkup&&e.keepMarkup.length){var t=function(e,r){for(var n=0,o=e.childNodes.length;n<o;n++){var i=e.childNodes[n];if(1===i.nodeType){if(!t(i,r))return!1}else 3===i.nodeType&&(!r.nodeStart&&r.pos+i.data.length>r.node.posOpen&&(r.nodeStart=i,r.nodeStartPos=r.node.posOpen-r.pos),r.nodeStart&&r.pos+i.data.length>=r.node.posClose&&(r.nodeEnd=i,r.nodeEndPos=r.node.posClose-r.pos),r.pos+=i.data.length);if(r.nodeStart&&r.nodeEnd){var s=document.createRange();return s.setStart(r.nodeStart,r.nodeStartPos),s.setEnd(r.nodeEnd,r.nodeEndPos),r.node.clone.appendChild(s.extractContents()),s.insertNode(r.node.clone),s.detach(),!1}}return!0};e.keepMarkup.forEach((function(r){t(e.element,{node:r,pos:0})})),e.highlightedCode=e.element.innerHTML}})))},8759:()=>{!function(){if("undefined"!=typeof Prism&&"undefined"!=typeof document){var e="line-numbers",t=/\n(?!$)/g,r=Prism.plugins.lineNumbers={getLine:function(t,r){if("PRE"===t.tagName&&t.classList.contains(e)){var n=t.querySelector(".line-numbers-rows");if(n){var o=parseInt(t.getAttribute("data-start"),10)||1,i=o+(n.children.length-1);r<o&&(r=o),r>i&&(r=i);var s=r-o;return n.children[s]}}},resize:function(e){o([e])},assumeViewportIndependence:!0},n=void 0;window.addEventListener("resize",(function(){r.assumeViewportIndependence&&n===window.innerWidth||(n=window.innerWidth,o(Array.prototype.slice.call(document.querySelectorAll("pre.line-numbers"))))})),Prism.hooks.add("complete",(function(r){if(r.code){var n=r.element,i=n.parentNode;if(i&&/pre/i.test(i.nodeName)&&!n.querySelector(".line-numbers-rows")&&Prism.util.isActive(n,e)){n.classList.remove(e),i.classList.add(e);var s,a=r.code.match(t),l=a?a.length+1:1,c=new Array(l+1).join("<span></span>");(s=document.createElement("span")).setAttribute("aria-hidden","true"),s.className="line-numbers-rows",s.innerHTML=c,i.hasAttribute("data-start")&&(i.style.counterReset="linenumber "+(parseInt(i.getAttribute("data-start"),10)-1)),r.element.appendChild(s),o([i]),Prism.hooks.run("line-numbers",r)}}})),Prism.hooks.add("line-numbers",(function(e){e.plugins=e.plugins||{},e.plugins.lineNumbers=!0}))}function o(e){if(0!=(e=e.filter((function(e){var t,r=(t=e,t?window.getComputedStyle?getComputedStyle(t):t.currentStyle||null:null)["white-space"];return"pre-wrap"===r||"pre-line"===r}))).length){var r=e.map((function(e){var r=e.querySelector("code"),n=e.querySelector(".line-numbers-rows");if(r&&n){var o=e.querySelector(".line-numbers-sizer"),i=r.textContent.split(t);o||((o=document.createElement("span")).className="line-numbers-sizer",r.appendChild(o)),o.innerHTML="0",o.style.display="block";var s=o.getBoundingClientRect().height;return o.innerHTML="",{element:e,lines:i,lineHeights:[],oneLinerHeight:s,sizer:o}}})).filter(Boolean);r.forEach((function(e){var t=e.sizer,r=e.lines,n=e.lineHeights,o=e.oneLinerHeight;n[r.length-1]=void 0,r.forEach((function(e,r){if(e&&e.length>1){var i=t.appendChild(document.createElement("span"));i.style.display="block",i.textContent=e}else n[r]=o}))})),r.forEach((function(e){for(var t=e.sizer,r=e.lineHeights,n=0,o=0;o<r.length;o++)void 0===r[o]&&(r[o]=t.children[n++].getBoundingClientRect().height)})),r.forEach((function(e){var t=e.sizer,r=e.element.querySelector(".line-numbers-rows");t.style.display="none",t.innerHTML="",e.lineHeights.forEach((function(e,t){r.children[t].style.height=e+"px"}))}))}}}()},7951:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.aggregateResultsByModule=void 0;const n=r(5740);t.aggregateResultsByModule=function(e){var t,r;const o=Object.values(e).map((e=>e.projectRoot)).filter(n.isNotNullish),i={files:{},schemaVersion:"1.7",thresholds:null!==(r=null===(t=e[0])||void 0===t?void 0:t.thresholds)&&void 0!==r?r:{high:80,low:60},projectRoot:o.length?(0,n.determineCommonBasePath)(o):void 0,config:{}};return Object.entries(e).reduce(((e,[t,r])=>{var o;if(Object.entries((0,n.normalizeFileNames)(r.files)).forEach((([e,r])=>{i.files[`${t}/${e}`]=r})),r.testFiles){const e=null!==(o=i.testFiles)&&void 0!==o?o:i.testFiles=Object.create(null);Object.entries((0,n.normalizeFileNames)(r.testFiles)).forEach((([r,n])=>{e[`${t}/${r}`]=n}))}return e}),i)}},2103:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.calculateMutationTestMetrics=t.calculateMetrics=void 0;const n=r(5740),o=r(9130),i=r(5740),s=r(8533),a=r(8689),l="All files";function c(e,t,r){const n=Object.keys(t);return 1===n.length&&""===n[0]?u(e,t[n[0]],r):d(e,t,r)}function d(e,t,r){const o=r(Object.values(t)),s=function(e,t){const r=(0,i.groupBy)(Object.entries(e),(e=>e[0].split("/")[0]));return Object.keys(r).map((e=>{if(r[e].length>1||r[e][0][0]!==e){const n={};return r[e].forEach((t=>n[t[0].substr(e.length+1)]=t[1])),d(e,n,t)}{const[n,o]=r[e][0];return u(n,o,t)}})).sort(n.compareNames)}(t,r);return{name:e,childResults:s,metrics:o}}function u(e,t,r){return{file:t,name:e,childResults:[],metrics:r([t])}}function h(e){const t=e.flatMap((e=>e.tests)),r=e=>t.filter((t=>t.status===e)).length;return{total:t.length,killing:r(a.TestStatus.Killing),covering:r(a.TestStatus.Covering),notCovering:r(a.TestStatus.NotCovering)}}function b(e){const t=e.flatMap((e=>e.mutants)),r=e=>t.filter((t=>t.status===e)).length,n=r(o.MutantStatus.Killed),i=r(o.MutantStatus.Timeout),s=r(o.MutantStatus.Survived),a=r(o.MutantStatus.NoCoverage),l=r(o.MutantStatus.RuntimeError),c=r(o.MutantStatus.CompileError),d=r(o.MutantStatus.Ignored),u=i+n,h=s+a,b=u+s,p=h+u,g=l+c;return{killed:n,timeout:i,survived:s,noCoverage:a,runtimeErrors:l,compileErrors:c,ignored:d,totalDetected:u,totalUndetected:h,totalCovered:b,totalValid:p,totalInvalid:g,mutationScore:p>0?u/p*100:NaN,totalMutants:p+g+d,mutationScoreBasedOnCoveredCode:p>0?u/b*100||0:NaN}}t.calculateMetrics=function(e){const t=(0,n.normalize)(e,"",((e,t)=>new s.FileUnderTestModel(e,t)));return d(l,t,b)},t.calculateMutationTestMetrics=function(e){const{files:t,testFiles:r,projectRoot:o=""}=e,i=(0,n.normalize)(t,o,((e,t)=>new s.FileUnderTestModel(e,t)));if(r){const e=(0,n.normalize)(r,o,((e,t)=>new s.TestFileModel(e,t)));return function(e,t){var r,n;for(const o of e)if(o.coveredBy||o.killedBy)for(const e of t)(null===(r=o.coveredBy)||void 0===r?void 0:r.includes(e.id))&&(o.addCoveredBy(e),e.addCovered(o)),(null===(n=o.killedBy)||void 0===n?void 0:n.includes(e.id))&&(o.addKilledBy(e),e.addKilled(o))}(Object.values(i).flatMap((e=>e.mutants)),Object.values(e).flatMap((e=>e.tests))),{systemUnderTestMetrics:c(l,i,b),testMetrics:c("All tests",e,h)}}return{systemUnderTestMetrics:c(l,i,b),testMetrics:void 0}}},400:(e,t)=>{"use strict";function r(e,t,r){const i=Object.keys(e),s=o(i),a=Object.create(null);return i.forEach((o=>{const i=n(o.startsWith(t)?o.substr(t.length):o);a[n(o.substr(s.length))]=r(e[o],i)})),a}function n(e){return e.split(/\/|\\/).filter(Boolean).join("/")}function o(e){const t=e.map((e=>e.split(/\/|\\/).slice(0,-1)));return e.length?t.reduce((function(e,t){for(let r=0;r<e.length;r++)if(e[r]!==t[r])return e.splice(0,r);return e})).join("/"):""}Object.defineProperty(t,"__esModule",{value:!0}),t.compareNames=t.determineCommonBasePath=t.normalize=t.normalizeFileNames=void 0,t.normalizeFileNames=function(e,t=""){return r(e,t,(e=>e))},t.normalize=r,t.determineCommonBasePath=o,t.compareNames=function(e,t){const r=e=>e.file?`1${e.name}`:`0${e.name}`;return r(e).localeCompare(r(t))}},7648:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.groupBy=void 0,t.groupBy=function(e,t){return e.reduce(((e,r)=>{const n=t(r);return Object.prototype.hasOwnProperty.call(e,n)||(e[n]=[]),e[n].push(r),e}),{})}},5740:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(7648),t),o(r(400),t),o(r(9676),t),o(r(3029),t)},3029:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isNotNullish=void 0,t.isNotNullish=function(e){return null!=e}},9676:(e,t)=>{"use strict";function r(e){return 10===e||13===e||8232===e||8233===e}Object.defineProperty(t,"__esModule",{value:!0}),t.computeLineStarts=void 0,t.computeLineStarts=function(e){const t=[];let n=0,o=0;function i(e){t.push(o),o=e}for(i(0);n<e.length;){const t=e.charCodeAt(n);switch(n++,t){case 13:10===e.charCodeAt(n)&&n++,i(n);break;case 10:i(n);break;default:t>127&&r(t)&&i(n)}}return t.push(o),t}},4193:(e,t,r)=>{"use strict";t.ih=t.xR=void 0;var n=r(2103);Object.defineProperty(t,"xR",{enumerable:!0,get:function(){return n.calculateMutationTestMetrics}});r(7951),r(5740);var o=r(8533);Object.defineProperty(t,"ih",{enumerable:!0,get:function(){return o.TestStatus}})},1211:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FileUnderTestModel=void 0;const n=r(1223),o=r(7966);class i extends o.SourceFile{constructor(e,t){super(),this.name=t,this.language=e.language,this.source=e.source,this.mutants=e.mutants.map((e=>{const t=new n.MutantModel(e);return t.sourceFile=this,t}))}getMutationLines(e){var t,r;const n=this.getLineMap(),o=n[e.location.start.line],i=n[e.location.end.line],s=n[e.location.end.line+1];return`${this.source.substr(o,e.location.start.column-1)}${null!==(r=null!==(t=e.replacement)&&void 0!==t?t:e.description)&&void 0!==r?r:e.mutatorName}${this.source.substring(i+e.location.end.column-1,s)}`}}t.FileUnderTestModel=i},8533:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TestStatus=t.TestModel=t.TestFileModel=t.MutantModel=t.FileUnderTestModel=void 0;var n=r(1211);Object.defineProperty(t,"FileUnderTestModel",{enumerable:!0,get:function(){return n.FileUnderTestModel}});var o=r(1223);Object.defineProperty(t,"MutantModel",{enumerable:!0,get:function(){return o.MutantModel}});var i=r(7100);Object.defineProperty(t,"TestFileModel",{enumerable:!0,get:function(){return i.TestFileModel}});var s=r(8689);Object.defineProperty(t,"TestModel",{enumerable:!0,get:function(){return s.TestModel}}),Object.defineProperty(t,"TestStatus",{enumerable:!0,get:function(){return s.TestStatus}})},1223:(e,t)=>{"use strict";function r(e){if(void 0===e)throw new Error("mutant.sourceFile was not defined")}Object.defineProperty(t,"__esModule",{value:!0}),t.MutantModel=void 0,t.MutantModel=class{constructor(e){this.coveredBy=e.coveredBy,this.description=e.description,this.duration=e.duration,this.id=e.id,this.killedBy=e.killedBy,this.location=e.location,this.mutatorName=e.mutatorName,this.replacement=e.replacement,this.static=e.static,this.status=e.status,this.statusReason=e.statusReason,this.testsCompleted=e.testsCompleted}addCoveredBy(e){this.coveredByTests||(this.coveredByTests=[]),this.coveredByTests.push(e)}addKilledBy(e){this.killedByTests||(this.killedByTests=[]),this.killedByTests.push(e)}getMutatedLines(){return r(this.sourceFile),this.sourceFile.getMutationLines(this)}getOriginalLines(){return r(this.sourceFile),this.sourceFile.getLines(this.location)}get fileName(){return r(this.sourceFile),this.sourceFile.name}}},7966:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SourceFile=t.assertSourceDefined=void 0;const n=r(5740);function o(e){if(void 0===e)throw new Error("sourceFile.source is undefined")}t.assertSourceDefined=o,t.SourceFile=class{getLineMap(){return o(this.source),this.lineMap||(this.lineMap=(0,n.computeLineStarts)(this.source))}getLines(e){var t;o(this.source);const r=this.getLineMap();return this.source.substring(r[e.start.line],r[(null!==(t=e.end)&&void 0!==t?t:e.start).line+1])}}},7100:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TestFileModel=void 0;const n=r(7966),o=r(8689);class i extends n.SourceFile{constructor(e,t){super(),this.name=t,this.source=e.source,this.tests=e.tests.map((e=>{const t=new o.TestModel(e);return t.sourceFile=this,t}))}}t.TestFileModel=i},8689:(e,t)=>{"use strict";function r(e){if(void 0===e)throw new Error("test.sourceFile was not defined")}var n;Object.defineProperty(t,"__esModule",{value:!0}),t.TestModel=t.TestStatus=void 0,function(e){e.Killing="Killing",e.Covering="Covering",e.NotCovering="NotCovering"}(n=t.TestStatus||(t.TestStatus={})),t.TestModel=class{constructor(e){Object.entries(e).forEach((([e,t])=>{this[e]=t}))}addCovered(e){this.coveredMutants||(this.coveredMutants=[]),this.coveredMutants.push(e)}addKilled(e){this.killedMutants||(this.killedMutants=[]),this.killedMutants.push(e)}getLines(){return r(this.sourceFile),function(e){if(void 0===e)throw new Error("test.location was not defined")}(this.location),this.sourceFile.getLines(this.location)}get fileName(){return r(this.sourceFile),this.sourceFile.name}get status(){var e,t;return(null===(e=this.killedMutants)||void 0===e?void 0:e.length)?n.Killing:(null===(t=this.coveredMutants)||void 0===t?void 0:t.length)?n.Covering:n.NotCovering}}},9130:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.MutantStatus=void 0,(r=t.MutantStatus||(t.MutantStatus={})).Killed="Killed",r.Survived="Survived",r.NoCoverage="NoCoverage",r.CompileError="CompileError",r.RuntimeError="RuntimeError",r.Timeout="Timeout",r.Ignored="Ignored"},7327:e=>{"use strict";e.exports="data:image/svg+xml;charset=UTF8,<svg xmlns=%27http://www.w3.org/2000/svg%27 height=%273%27 width=%276%27><g fill=%27%23dc3545%27><path d=%27m5.5 0-3 3H1.1l3-3z%27/><path d=%27m4 0 2 2V.6L5.4 0zM0 2l1 1h1.4L0 .6z%27/></g></svg>"},6076:e=>{"use strict";e.exports="data:image/svg+xml;charset=UTF8,<svg xmlns=%27http://www.w3.org/2000/svg%27 height=%273%27 width=%276%27><g fill=%27%23e13238%27><path d=%27m5.5 0-3 3H1.1l3-3z%27/><path d=%27m4 0 2 2V.6L5.4 0zM0 2l1 1h1.4L0 .6z%27/></g></svg>"},3726:e=>{"use strict";e.exports="data:image/svg+xml;charset=UTF8,<svg xmlns=%27http://www.w3.org/2000/svg%27 height=%273%27 width=%276%27><g fill=%27%23fd7e14%27><path d=%27m5.5 0-3 3H1.1l3-3z%27/><path d=%27m4 0 2 2V.6L5.4 0zM0 2l1 1h1.4L0 .6z%27/></g></svg>"},5605:e=>{"use strict";e.exports="data:image/svg+xml;charset=UTF8,<svg xmlns=%27http://www.w3.org/2000/svg%27 height=%273%27 width=%276%27><g fill=%27%23ff8b26%27><path d=%27m5.5 0-3 3H1.1l3-3z%27/><path d=%27m4 0 2 2V.6L5.4 0zM0 2l1 1h1.4L0 .6z%27/></g></svg>"},388:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 20 20%27%3E%3Cpath fill=%27none%27 stroke=%27%23fff%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%273%27 d=%27M6 10h8%27/%3E%3C/svg%3E"},5322:e=>{"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 20 20%27%3E%3Cpath fill=%27none%27 stroke=%27%23fff%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%273%27 d=%27m6 10 3 3 6-6%27/%3E%3C/svg%3E"}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={id:n,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.exports}r.m=e,r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.b=document.baseURI||self.location.href,(()=>{"use strict";const e=window.ShadowRoot&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,t=Symbol(),n=new Map;class o{constructor(e,r){if(this._$cssResult$=!0,r!==t)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e}get styleSheet(){let t=n.get(this.cssText);return e&&void 0===t&&(n.set(this.cssText,t=new CSSStyleSheet),t.replaceSync(this.cssText)),t}toString(){return this.cssText}}const i=e=>new o("string"==typeof e?e:e+"",t),s=e?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t="";for(const r of e.cssRules)t+=r.cssText;return i(t)})(e):e;var a;const l=window.reactiveElementPolyfillSupport,c={toAttribute(e,t){switch(t){case Boolean:e=e?"":null;break;case Object:case Array:e=null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){let r=e;switch(t){case Boolean:r=null!==e;break;case Number:r=null===e?null:Number(e);break;case Object:case Array:try{r=JSON.parse(e)}catch(e){r=null}}return r}},d=(e,t)=>t!==e&&(t==t||e==e),u={attribute:!0,type:String,converter:c,reflect:!1,hasChanged:d};class h extends HTMLElement{constructor(){super(),this._$Et=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Ei=null,this.o()}static addInitializer(e){var t;null!==(t=this.l)&&void 0!==t||(this.l=[]),this.l.push(e)}static get observedAttributes(){this.finalize();const e=[];return this.elementProperties.forEach(((t,r)=>{const n=this._$Eh(r,t);void 0!==n&&(this._$Eu.set(n,r),e.push(n))})),e}static createProperty(e,t=u){if(t.state&&(t.attribute=!1),this.finalize(),this.elementProperties.set(e,t),!t.noAccessor&&!this.prototype.hasOwnProperty(e)){const r="symbol"==typeof e?Symbol():"__"+e,n=this.getPropertyDescriptor(e,r,t);void 0!==n&&Object.defineProperty(this.prototype,e,n)}}static getPropertyDescriptor(e,t,r){return{get(){return this[t]},set(n){const o=this[e];this[t]=n,this.requestUpdate(e,o,r)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)||u}static finalize(){if(this.hasOwnProperty("finalized"))return!1;this.finalized=!0;const e=Object.getPrototypeOf(this);if(e.finalize(),this.elementProperties=new Map(e.elementProperties),this._$Eu=new Map,this.hasOwnProperty("properties")){const e=this.properties,t=[...Object.getOwnPropertyNames(e),...Object.getOwnPropertySymbols(e)];for(const r of t)this.createProperty(r,e[r])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(e){const t=[];if(Array.isArray(e)){const r=new Set(e.flat(1/0).reverse());for(const e of r)t.unshift(s(e))}else void 0!==e&&t.push(s(e));return t}static _$Eh(e,t){const r=t.attribute;return!1===r?void 0:"string"==typeof r?r:"string"==typeof e?e.toLowerCase():void 0}o(){var e;this._$Ev=new Promise((e=>this.enableUpdating=e)),this._$AL=new Map,this._$Ep(),this.requestUpdate(),null===(e=this.constructor.l)||void 0===e||e.forEach((e=>e(this)))}addController(e){var t,r;(null!==(t=this._$Em)&&void 0!==t?t:this._$Em=[]).push(e),void 0!==this.renderRoot&&this.isConnected&&(null===(r=e.hostConnected)||void 0===r||r.call(e))}removeController(e){var t;null===(t=this._$Em)||void 0===t||t.splice(this._$Em.indexOf(e)>>>0,1)}_$Ep(){this.constructor.elementProperties.forEach(((e,t)=>{this.hasOwnProperty(t)&&(this._$Et.set(t,this[t]),delete this[t])}))}createRenderRoot(){var t;const r=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return((t,r)=>{e?t.adoptedStyleSheets=r.map((e=>e instanceof CSSStyleSheet?e:e.styleSheet)):r.forEach((e=>{const r=document.createElement("style"),n=window.litNonce;void 0!==n&&r.setAttribute("nonce",n),r.textContent=e.cssText,t.appendChild(r)}))})(r,this.constructor.elementStyles),r}connectedCallback(){var e;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(e=this._$Em)||void 0===e||e.forEach((e=>{var t;return null===(t=e.hostConnected)||void 0===t?void 0:t.call(e)}))}enableUpdating(e){}disconnectedCallback(){var e;null===(e=this._$Em)||void 0===e||e.forEach((e=>{var t;return null===(t=e.hostDisconnected)||void 0===t?void 0:t.call(e)}))}attributeChangedCallback(e,t,r){this._$AK(e,r)}_$Eg(e,t,r=u){var n,o;const i=this.constructor._$Eh(e,r);if(void 0!==i&&!0===r.reflect){const s=(null!==(o=null===(n=r.converter)||void 0===n?void 0:n.toAttribute)&&void 0!==o?o:c.toAttribute)(t,r.type);this._$Ei=e,null==s?this.removeAttribute(i):this.setAttribute(i,s),this._$Ei=null}}_$AK(e,t){var r,n,o;const i=this.constructor,s=i._$Eu.get(e);if(void 0!==s&&this._$Ei!==s){const e=i.getPropertyOptions(s),a=e.converter,l=null!==(o=null!==(n=null===(r=a)||void 0===r?void 0:r.fromAttribute)&&void 0!==n?n:"function"==typeof a?a:null)&&void 0!==o?o:c.fromAttribute;this._$Ei=s,this[s]=l(t,e.type),this._$Ei=null}}requestUpdate(e,t,r){let n=!0;void 0!==e&&(((r=r||this.constructor.getPropertyOptions(e)).hasChanged||d)(this[e],t)?(this._$AL.has(e)||this._$AL.set(e,t),!0===r.reflect&&this._$Ei!==e&&(void 0===this._$ES&&(this._$ES=new Map),this._$ES.set(e,r))):n=!1),!this.isUpdatePending&&n&&(this._$Ev=this._$EC())}async _$EC(){this.isUpdatePending=!0;try{await this._$Ev}catch(e){Promise.reject(e)}const e=this.scheduleUpdate();return null!=e&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var e;if(!this.isUpdatePending)return;this.hasUpdated,this._$Et&&(this._$Et.forEach(((e,t)=>this[t]=e)),this._$Et=void 0);let t=!1;const r=this._$AL;try{t=this.shouldUpdate(r),t?(this.willUpdate(r),null===(e=this._$Em)||void 0===e||e.forEach((e=>{var t;return null===(t=e.hostUpdate)||void 0===t?void 0:t.call(e)})),this.update(r)):this._$EU()}catch(e){throw t=!1,this._$EU(),e}t&&this._$AE(r)}willUpdate(e){}_$AE(e){var t;null===(t=this._$Em)||void 0===t||t.forEach((e=>{var t;return null===(t=e.hostUpdated)||void 0===t?void 0:t.call(e)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$Ev}shouldUpdate(e){return!0}update(e){void 0!==this._$ES&&(this._$ES.forEach(((e,t)=>this._$Eg(t,this[t],e))),this._$ES=void 0),this._$EU()}updated(e){}firstUpdated(e){}}var b;h.finalized=!0,h.elementProperties=new Map,h.elementStyles=[],h.shadowRootOptions={mode:"open"},null==l||l({ReactiveElement:h}),(null!==(a=globalThis.reactiveElementVersions)&&void 0!==a?a:globalThis.reactiveElementVersions=[]).push("1.0.1");const p=globalThis.trustedTypes,g=p?p.createPolicy("lit-html",{createHTML:e=>e}):void 0,f=`lit$${(Math.random()+"").slice(9)}$`,m="?"+f,v=`<${m}>`,y=document,w=(e="")=>y.createComment(e),k=e=>null===e||"object"!=typeof e&&"function"!=typeof e,$=Array.isArray,x=e=>{var t;return $(e)||"function"==typeof(null===(t=e)||void 0===t?void 0:t[Symbol.iterator])},S=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,A=/-->/g,_=/>/g,M=/>|[ 	\n\r](?:([^\s"'>=/]+)([ 	\n\r]*=[ 	\n\r]*(?:[^ 	\n\r"'`<>=]|("|')|))|$)/g,C=/'/g,E=/"/g,T=/^(?:script|style|textarea)$/i,P=e=>(t,...r)=>({_$litType$:e,strings:t,values:r}),z=P(1),j=P(2),F=Symbol.for("lit-noChange"),N=Symbol.for("lit-nothing"),O=new WeakMap,R=y.createTreeWalker(y,129,null,!1),B=(e,t)=>{const r=e.length-1,n=[];let o,i=2===t?"<svg>":"",s=S;for(let t=0;t<r;t++){const r=e[t];let a,l,c=-1,d=0;for(;d<r.length&&(s.lastIndex=d,l=s.exec(r),null!==l);)d=s.lastIndex,s===S?"!--"===l[1]?s=A:void 0!==l[1]?s=_:void 0!==l[2]?(T.test(l[2])&&(o=RegExp("</"+l[2],"g")),s=M):void 0!==l[3]&&(s=M):s===M?">"===l[0]?(s=null!=o?o:S,c=-1):void 0===l[1]?c=-2:(c=s.lastIndex-l[2].length,a=l[1],s=void 0===l[3]?M:'"'===l[3]?E:C):s===E||s===C?s=M:s===A||s===_?s=S:(s=M,o=void 0);const u=s===M&&e[t+1].startsWith("/>")?" ":"";i+=s===S?r+v:c>=0?(n.push(a),r.slice(0,c)+"$lit$"+r.slice(c)+f+u):r+f+(-2===c?(n.push(void 0),t):u)}const a=i+(e[r]||"<?>")+(2===t?"</svg>":"");return[void 0!==g?g.createHTML(a):a,n]};class L{constructor({strings:e,_$litType$:t},r){let n;this.parts=[];let o=0,i=0;const s=e.length-1,a=this.parts,[l,c]=B(e,t);if(this.el=L.createElement(l,r),R.currentNode=this.el.content,2===t){const e=this.el.content,t=e.firstChild;t.remove(),e.append(...t.childNodes)}for(;null!==(n=R.nextNode())&&a.length<s;){if(1===n.nodeType){if(n.hasAttributes()){const e=[];for(const t of n.getAttributeNames())if(t.endsWith("$lit$")||t.startsWith(f)){const r=c[i++];if(e.push(t),void 0!==r){const e=n.getAttribute(r.toLowerCase()+"$lit$").split(f),t=/([.?@])?(.*)/.exec(r);a.push({type:1,index:o,name:t[2],strings:e,ctor:"."===t[1]?Z:"?"===t[1]?K:"@"===t[1]?q:H})}else a.push({type:6,index:o})}for(const t of e)n.removeAttribute(t)}if(T.test(n.tagName)){const e=n.textContent.split(f),t=e.length-1;if(t>0){n.textContent=p?p.emptyScript:"";for(let r=0;r<t;r++)n.append(e[r],w()),R.nextNode(),a.push({type:2,index:++o});n.append(e[t],w())}}}else if(8===n.nodeType)if(n.data===m)a.push({type:2,index:o});else{let e=-1;for(;-1!==(e=n.data.indexOf(f,e+1));)a.push({type:7,index:o}),e+=f.length-1}o++}}static createElement(e,t){const r=y.createElement("template");return r.innerHTML=e,r}}function U(e,t,r=e,n){var o,i,s,a;if(t===F)return t;let l=void 0!==n?null===(o=r._$Cl)||void 0===o?void 0:o[n]:r._$Cu;const c=k(t)?void 0:t._$litDirective$;return(null==l?void 0:l.constructor)!==c&&(null===(i=null==l?void 0:l._$AO)||void 0===i||i.call(l,!1),void 0===c?l=void 0:(l=new c(e),l._$AT(e,r,n)),void 0!==n?(null!==(s=(a=r)._$Cl)&&void 0!==s?s:a._$Cl=[])[n]=l:r._$Cu=l),void 0!==l&&(t=U(e,l._$AS(e,t.values),l,n)),t}class I{constructor(e,t){this.v=[],this._$AN=void 0,this._$AD=e,this._$AM=t}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}p(e){var t;const{el:{content:r},parts:n}=this._$AD,o=(null!==(t=null==e?void 0:e.creationScope)&&void 0!==t?t:y).importNode(r,!0);R.currentNode=o;let i=R.nextNode(),s=0,a=0,l=n[0];for(;void 0!==l;){if(s===l.index){let t;2===l.type?t=new D(i,i.nextSibling,this,e):1===l.type?t=new l.ctor(i,l.name,l.strings,this,e):6===l.type&&(t=new V(i,this,e)),this.v.push(t),l=n[++a]}s!==(null==l?void 0:l.index)&&(i=R.nextNode(),s++)}return o}m(e){let t=0;for(const r of this.v)void 0!==r&&(void 0!==r.strings?(r._$AI(e,r,t),t+=r.strings.length-2):r._$AI(e[t])),t++}}class D{constructor(e,t,r,n){var o;this.type=2,this._$AH=N,this._$AN=void 0,this._$AA=e,this._$AB=t,this._$AM=r,this.options=n,this._$Cg=null===(o=null==n?void 0:n.isConnected)||void 0===o||o}get _$AU(){var e,t;return null!==(t=null===(e=this._$AM)||void 0===e?void 0:e._$AU)&&void 0!==t?t:this._$Cg}get parentNode(){let e=this._$AA.parentNode;const t=this._$AM;return void 0!==t&&11===e.nodeType&&(e=t.parentNode),e}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(e,t=this){e=U(this,e,t),k(e)?e===N||null==e||""===e?(this._$AH!==N&&this._$AR(),this._$AH=N):e!==this._$AH&&e!==F&&this.$(e):void 0!==e._$litType$?this.T(e):void 0!==e.nodeType?this.S(e):x(e)?this.M(e):this.$(e)}A(e,t=this._$AB){return this._$AA.parentNode.insertBefore(e,t)}S(e){this._$AH!==e&&(this._$AR(),this._$AH=this.A(e))}$(e){this._$AH!==N&&k(this._$AH)?this._$AA.nextSibling.data=e:this.S(y.createTextNode(e)),this._$AH=e}T(e){var t;const{values:r,_$litType$:n}=e,o="number"==typeof n?this._$AC(e):(void 0===n.el&&(n.el=L.createElement(n.h,this.options)),n);if((null===(t=this._$AH)||void 0===t?void 0:t._$AD)===o)this._$AH.m(r);else{const e=new I(o,this),t=e.p(this.options);e.m(r),this.S(t),this._$AH=e}}_$AC(e){let t=O.get(e.strings);return void 0===t&&O.set(e.strings,t=new L(e)),t}M(e){$(this._$AH)||(this._$AH=[],this._$AR());const t=this._$AH;let r,n=0;for(const o of e)n===t.length?t.push(r=new D(this.A(w()),this.A(w()),this,this.options)):r=t[n],r._$AI(o),n++;n<t.length&&(this._$AR(r&&r._$AB.nextSibling,n),t.length=n)}_$AR(e=this._$AA.nextSibling,t){var r;for(null===(r=this._$AP)||void 0===r||r.call(this,!1,!0,t);e&&e!==this._$AB;){const t=e.nextSibling;e.remove(),e=t}}setConnected(e){var t;void 0===this._$AM&&(this._$Cg=e,null===(t=this._$AP)||void 0===t||t.call(this,e))}}class H{constructor(e,t,r,n,o){this.type=1,this._$AH=N,this._$AN=void 0,this.element=e,this.name=t,this._$AM=n,this.options=o,r.length>2||""!==r[0]||""!==r[1]?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=N}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(e,t=this,r,n){const o=this.strings;let i=!1;if(void 0===o)e=U(this,e,t,0),i=!k(e)||e!==this._$AH&&e!==F,i&&(this._$AH=e);else{const n=e;let s,a;for(e=o[0],s=0;s<o.length-1;s++)a=U(this,n[r+s],t,s),a===F&&(a=this._$AH[s]),i||(i=!k(a)||a!==this._$AH[s]),a===N?e=N:e!==N&&(e+=(null!=a?a:"")+o[s+1]),this._$AH[s]=a}i&&!n&&this.k(e)}k(e){e===N?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,null!=e?e:"")}}class Z extends H{constructor(){super(...arguments),this.type=3}k(e){this.element[this.name]=e===N?void 0:e}}class K extends H{constructor(){super(...arguments),this.type=4}k(e){e&&e!==N?this.element.setAttribute(this.name,""):this.element.removeAttribute(this.name)}}class q extends H{constructor(e,t,r,n,o){super(e,t,r,n,o),this.type=5}_$AI(e,t=this){var r;if((e=null!==(r=U(this,e,t,0))&&void 0!==r?r:N)===F)return;const n=this._$AH,o=e===N&&n!==N||e.capture!==n.capture||e.once!==n.once||e.passive!==n.passive,i=e!==N&&(n===N||o);o&&this.element.removeEventListener(this.name,this,n),i&&this.element.addEventListener(this.name,this,e),this._$AH=e}handleEvent(e){var t,r;"function"==typeof this._$AH?this._$AH.call(null!==(r=null===(t=this.options)||void 0===t?void 0:t.host)&&void 0!==r?r:this.element,e):this._$AH.handleEvent(e)}}class V{constructor(e,t,r){this.element=e,this.type=6,this._$AN=void 0,this._$AM=t,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(e){U(this,e)}}const W={P:"$lit$",V:f,L:m,I:1,N:B,R:I,D:x,j:U,H:D,O:H,F:K,B:q,W:Z,Z:V},G=window.litHtmlPolyfillSupport;var Y,J;null==G||G(L,D),(null!==(b=globalThis.litHtmlVersions)&&void 0!==b?b:globalThis.litHtmlVersions=[]).push("2.0.1");class Q extends h{constructor(){super(...arguments),this.renderOptions={host:this},this._$Dt=void 0}createRenderRoot(){var e,t;const r=super.createRenderRoot();return null!==(e=(t=this.renderOptions).renderBefore)&&void 0!==e||(t.renderBefore=r.firstChild),r}update(e){const t=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Dt=((e,t,r)=>{var n,o;const i=null!==(n=null==r?void 0:r.renderBefore)&&void 0!==n?n:t;let s=i._$litPart$;if(void 0===s){const e=null!==(o=null==r?void 0:r.renderBefore)&&void 0!==o?o:null;i._$litPart$=s=new D(t.insertBefore(w(),e),e,void 0,null!=r?r:{})}return s._$AI(e),s})(t,this.renderRoot,this.renderOptions)}connectedCallback(){var e;super.connectedCallback(),null===(e=this._$Dt)||void 0===e||e.setConnected(!0)}disconnectedCallback(){var e;super.disconnectedCallback(),null===(e=this._$Dt)||void 0===e||e.setConnected(!1)}render(){return F}}Q.finalized=!0,Q._$litElement$=!0,null===(Y=globalThis.litElementHydrateSupport)||void 0===Y||Y.call(globalThis,{LitElement:Q});const X=globalThis.litElementPolyfillSupport;null==X||X({LitElement:Q}),(null!==(J=globalThis.litElementVersions)&&void 0!==J?J:globalThis.litElementVersions=[]).push("3.0.1");const ee=(e,t)=>"method"===t.kind&&t.descriptor&&!("value"in t.descriptor)?{...t,finisher(r){r.createProperty(t.key,e)}}:{kind:"field",key:Symbol(),placement:"own",descriptor:{},originalKey:t.key,initializer(){"function"==typeof t.initializer&&(this[t.key]=t.initializer.call(this))},finisher(r){r.createProperty(t.key,e)}};function te(e){return(t,r)=>void 0!==r?((e,t,r)=>{t.constructor.createProperty(r,e)})(e,t,r):ee(e,t)}const re=e=>t=>"function"==typeof t?((e,t)=>(window.customElements.define(e,t),t))(e,t):((e,t)=>{const{kind:r,elements:n}=t;return{kind:r,elements:n,finisher(t){window.customElements.define(e,t)}}})(e,t);var ne=r(4193),oe=r(2420),ie=r(6773),se=r(5043),ae=r(8325);r(8759),r(5433),r(9980),r(6836),r(9016),r(2503),r(2886),r(9472),r(4335),r(6854),r(9945),r(6488);const le=i(oe.Z),ce=i(ie.Z),de=i(se.Z);function ue(e){return"function"==typeof e}function he(e){return function(t){if(function(e){return ue(null==e?void 0:e.lift)}(t))return t.lift((function(t){try{return e(t,this)}catch(e){this.error(e)}}));throw new TypeError("Unable to lift unknown Observable type")}}var be=function(e,t){return be=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},be(e,t)};function pe(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}be(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}function ge(e,t){var r,n,o,i,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return s.label++,{value:i[1],done:!1};case 5:s.label++,n=i[1],i=[0];continue;case 7:i=s.ops.pop(),s.trys.pop();continue;default:if(!((o=(o=s.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){s=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){s.label=i[1];break}if(6===i[0]&&s.label<o[1]){s.label=o[1],o=i;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(i);break}o[2]&&s.ops.pop(),s.trys.pop();continue}i=t.call(e,s)}catch(e){i=[6,e],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,a])}}}function fe(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function me(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)s.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return s}function ve(e,t){for(var r=0,n=t.length,o=e.length;r<n;r++,o++)e[o]=t[r];return e}function ye(e){return this instanceof ye?(this.v=e,this):new ye(e)}function we(e,t,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n,o=r.apply(e,t||[]),i=[];return n={},s("next"),s("throw"),s("return"),n[Symbol.asyncIterator]=function(){return this},n;function s(e){o[e]&&(n[e]=function(t){return new Promise((function(r,n){i.push([e,t,r,n])>1||a(e,t)}))})}function a(e,t){try{(r=o[e](t)).value instanceof ye?Promise.resolve(r.value.v).then(l,c):d(i[0][2],r)}catch(e){d(i[0][3],e)}var r}function l(e){a("next",e)}function c(e){a("throw",e)}function d(e,t){e(t),i.shift(),i.length&&a(i[0][0],i[0][1])}}Object.create,Object.create;var ke,$e=((ke=function(e){return function(t){e(this),this.message=t?t.length+" errors occurred during unsubscription:\n"+t.map((function(e,t){return t+1+") "+e.toString()})).join("\n  "):"",this.name="UnsubscriptionError",this.errors=t}}((function(e){Error.call(e),e.stack=(new Error).stack}))).prototype=Object.create(Error.prototype),ke.prototype.constructor=ke,ke);function xe(e,t){if(e){var r=e.indexOf(t);0<=r&&e.splice(r,1)}}var Se=function(){function e(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._teardowns=null}return e.prototype.unsubscribe=function(){var e,t,r,n,o;if(!this.closed){this.closed=!0;var i=this._parentage;if(i)if(this._parentage=null,Array.isArray(i))try{for(var s=fe(i),a=s.next();!a.done;a=s.next())a.value.remove(this)}catch(t){e={error:t}}finally{try{a&&!a.done&&(t=s.return)&&t.call(s)}finally{if(e)throw e.error}}else i.remove(this);var l=this.initialTeardown;if(ue(l))try{l()}catch(e){o=e instanceof $e?e.errors:[e]}var c=this._teardowns;if(c){this._teardowns=null;try{for(var d=fe(c),u=d.next();!u.done;u=d.next()){var h=u.value;try{_e(h)}catch(e){o=null!=o?o:[],e instanceof $e?o=ve(ve([],me(o)),me(e.errors)):o.push(e)}}}catch(e){r={error:e}}finally{try{u&&!u.done&&(n=d.return)&&n.call(d)}finally{if(r)throw r.error}}}if(o)throw new $e(o)}},e.prototype.add=function(t){var r;if(t&&t!==this)if(this.closed)_e(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._teardowns=null!==(r=this._teardowns)&&void 0!==r?r:[]).push(t)}},e.prototype._hasParent=function(e){var t=this._parentage;return t===e||Array.isArray(t)&&t.includes(e)},e.prototype._addParent=function(e){var t=this._parentage;this._parentage=Array.isArray(t)?(t.push(e),t):t?[t,e]:e},e.prototype._removeParent=function(e){var t=this._parentage;t===e?this._parentage=null:Array.isArray(t)&&xe(t,e)},e.prototype.remove=function(t){var r=this._teardowns;r&&xe(r,t),t instanceof e&&t._removeParent(this)},e.EMPTY=((t=new e).closed=!0,t),e;var t}();function Ae(e){return e instanceof Se||e&&"closed"in e&&ue(e.remove)&&ue(e.add)&&ue(e.unsubscribe)}function _e(e){ue(e)?e():e.unsubscribe()}Se.EMPTY;var Me=null,Ce=null,Ee=void 0,Te=!1,Pe=!1,ze={setTimeout:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=ze.delegate;return((null==r?void 0:r.setTimeout)||setTimeout).apply(void 0,ve([],me(e)))},clearTimeout:function(e){var t=ze.delegate;return((null==t?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function je(e){ze.setTimeout((function(){if(!Me)throw e;Me(e)}))}function Fe(){}var Ne=Oe("C",void 0,void 0);function Oe(e,t,r){return{kind:e,value:t,error:r}}var Re=null;function Be(e){Te&&Re&&(Re.errorThrown=!0,Re.error=e)}var Le=function(e){function t(t){var r=e.call(this)||this;return r.isStopped=!1,t?(r.destination=t,Ae(t)&&t.add(r)):r.destination=Ze,r}return pe(t,e),t.create=function(e,t,r){return new Ue(e,t,r)},t.prototype.next=function(e){this.isStopped?He(function(e){return Oe("N",e,void 0)}(e),this):this._next(e)},t.prototype.error=function(e){this.isStopped?He(Oe("E",void 0,e),this):(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped?He(Ne,this):(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this),this.destination=null)},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){try{this.destination.error(e)}finally{this.unsubscribe()}},t.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},t}(Se),Ue=function(e){function t(t,r,n){var o,i=e.call(this)||this;if(ue(t))o=t;else if(t){var s;o=t.next,r=t.error,n=t.complete,i&&Pe?(s=Object.create(t)).unsubscribe=function(){return i.unsubscribe()}:s=t,o=null==o?void 0:o.bind(s),r=null==r?void 0:r.bind(s),n=null==n?void 0:n.bind(s)}return i.destination={next:o?Ie(o):Fe,error:Ie(null!=r?r:De),complete:n?Ie(n):Fe},i}return pe(t,e),t}(Le);function Ie(e,t){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];try{e.apply(void 0,ve([],me(t)))}catch(e){Te?Be(e):je(e)}}}function De(e){throw e}function He(e,t){var r=Ce;r&&ze.setTimeout((function(){return r(e,t)}))}var Ze={closed:!0,next:Fe,error:De,complete:Fe},Ke=function(e){function t(t,r,n,o,i){var s=e.call(this,t)||this;return s.onFinalize=i,s._next=r?function(e){try{r(e)}catch(e){t.error(e)}}:e.prototype._next,s._error=o?function(e){try{o(e)}catch(e){t.error(e)}finally{this.unsubscribe()}}:e.prototype._error,s._complete=n?function(){try{n()}catch(e){t.error(e)}finally{this.unsubscribe()}}:e.prototype._complete,s}return pe(t,e),t.prototype.unsubscribe=function(){var t,r=this.closed;e.prototype.unsubscribe.call(this),!r&&(null===(t=this.onFinalize)||void 0===t||t.call(this))},t}(Le);function qe(e,t){return he((function(r,n){var o=0;r.subscribe(new Ke(n,(function(r){n.next(e.call(t,r,o++))})))}))}var Ve=function(e){return e&&"number"==typeof e.length&&"function"!=typeof e};function We(e){return ue(null==e?void 0:e.then)}var Ge="function"==typeof Symbol&&Symbol.observable||"@@observable";function Ye(e){return e}function Je(e){return 0===e.length?Ye:1===e.length?e[0]:function(t){return e.reduce((function(e,t){return t(e)}),t)}}var Qe=function(){function e(e){e&&(this._subscribe=e)}return e.prototype.lift=function(t){var r=new e;return r.source=this,r.operator=t,r},e.prototype.subscribe=function(e,t,r){var n,o=this,i=(n=e)&&n instanceof Le||function(e){return e&&ue(e.next)&&ue(e.error)&&ue(e.complete)}(n)&&Ae(n)?e:new Ue(e,t,r);return function(e){if(Te){var t=!Re;if(t&&(Re={errorThrown:!1,error:null}),e(),t){var r=Re,n=r.errorThrown,o=r.error;if(Re=null,n)throw o}}else e()}((function(){var e=o,t=e.operator,r=e.source;i.add(t?t.call(i,r):r?o._subscribe(i):o._trySubscribe(i))})),i},e.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(t){e.error(t)}},e.prototype.forEach=function(e,t){var r=this;return new(t=Xe(t))((function(t,n){var o;o=r.subscribe((function(t){try{e(t)}catch(e){n(e),null==o||o.unsubscribe()}}),n,t)}))},e.prototype._subscribe=function(e){var t;return null===(t=this.source)||void 0===t?void 0:t.subscribe(e)},e.prototype[Ge]=function(){return this},e.prototype.pipe=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return Je(e)(this)},e.prototype.toPromise=function(e){var t=this;return new(e=Xe(e))((function(e,r){var n;t.subscribe((function(e){return n=e}),(function(e){return r(e)}),(function(){return e(n)}))}))},e.create=function(t){return new e(t)},e}();function Xe(e){var t;return null!==(t=null!=e?e:Ee)&&void 0!==t?t:Promise}function et(e){return ue(e[Ge])}function tt(e){return Symbol.asyncIterator&&ue(null==e?void 0:e[Symbol.asyncIterator])}function rt(e){return new TypeError("You provided "+(null!==e&&"object"==typeof e?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}var nt="function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator";function ot(e){return ue(null==e?void 0:e[nt])}function it(e){return we(this,arguments,(function(){var t,r,n;return ge(this,(function(o){switch(o.label){case 0:t=e.getReader(),o.label=1;case 1:o.trys.push([1,,9,10]),o.label=2;case 2:return[4,ye(t.read())];case 3:return r=o.sent(),n=r.value,r.done?[4,ye(void 0)]:[3,5];case 4:return[2,o.sent()];case 5:return[4,ye(n)];case 6:return[4,o.sent()];case 7:return o.sent(),[3,2];case 8:return[3,10];case 9:return t.releaseLock(),[7];case 10:return[2]}}))}))}function st(e){return ue(null==e?void 0:e.getReader)}function at(e){if(e instanceof Qe)return e;if(null!=e){if(et(e))return o=e,new Qe((function(e){var t=o[Ge]();if(ue(t.subscribe))return t.subscribe(e);throw new TypeError("Provided object does not correctly implement Symbol.observable")}));if(Ve(e))return n=e,new Qe((function(e){for(var t=0;t<n.length&&!e.closed;t++)e.next(n[t]);e.complete()}));if(We(e))return r=e,new Qe((function(e){r.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,je)}));if(tt(e))return lt(e);if(ot(e))return t=e,new Qe((function(e){var r,n;try{for(var o=fe(t),i=o.next();!i.done;i=o.next()){var s=i.value;if(e.next(s),e.closed)return}}catch(e){r={error:e}}finally{try{i&&!i.done&&(n=o.return)&&n.call(o)}finally{if(r)throw r.error}}e.complete()}));if(st(e))return lt(it(e))}var t,r,n,o;throw rt(e)}function lt(e){return new Qe((function(t){(function(e,t){var r,n,o,i;return function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function s(e){try{l(n.next(e))}catch(e){i(e)}}function a(e){try{l(n.throw(e))}catch(e){i(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}l((n=n.apply(e,t||[])).next())}))}(this,void 0,void 0,(function(){var s,a;return ge(this,(function(l){switch(l.label){case 0:l.trys.push([0,5,6,11]),r=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=fe(e),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(r){t[r]=e[r]&&function(t){return new Promise((function(n,o){!function(e,t,r,n){Promise.resolve(n).then((function(t){e({value:t,done:r})}),t)}(n,o,(t=e[r](t)).done,t.value)}))}}}(e),l.label=1;case 1:return[4,r.next()];case 2:if((n=l.sent()).done)return[3,4];if(s=n.value,t.next(s),t.closed)return[2];l.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return a=l.sent(),o={error:a},[3,11];case 6:return l.trys.push([6,,9,10]),n&&!n.done&&(i=r.return)?[4,i.call(r)]:[3,8];case 7:l.sent(),l.label=8;case 8:return[3,10];case 9:if(o)throw o.error;return[7];case 10:return[7];case 11:return t.complete(),[2]}}))}))})(e,t).catch((function(e){return t.error(e)}))}))}function ct(e,t,r,n,o){void 0===n&&(n=0),void 0===o&&(o=!1);var i=t.schedule((function(){r(),o?e.add(this.schedule(null,n)):this.unsubscribe()}),n);if(e.add(i),!o)return i}function dt(e,t,r){return void 0===r&&(r=1/0),ue(t)?dt((function(r,n){return qe((function(e,o){return t(r,e,n,o)}))(at(e(r,n)))}),r):("number"==typeof t&&(r=t),he((function(t,n){return function(e,t,r,n,o,i,s,a){var l=[],c=0,d=0,u=!1,h=function(){!u||l.length||c||t.complete()},b=function(e){return c<n?p(e):l.push(e)},p=function(e){c++;var o=!1;at(r(e,d++)).subscribe(new Ke(t,(function(e){t.next(e)}),(function(){o=!0}),void 0,(function(){if(o)try{c--;for(;l.length&&c<n;)e=void 0,e=l.shift(),p(e);h()}catch(e){t.error(e)}var e})))};return e.subscribe(new Ke(t,b,(function(){u=!0,h()}))),function(){}}(t,n,e,r)})))}function ut(e){return void 0===e&&(e=1/0),dt(Ye,e)}var ht=new Qe((function(e){return e.complete()}));function bt(e){return e[e.length-1]}function pt(e){return(t=bt(e))&&ue(t.schedule)?e.pop():void 0;var t}function gt(e,t){return"number"==typeof bt(e)?e.pop():t}function ft(e,t){return void 0===t&&(t=0),he((function(r,n){r.subscribe(new Ke(n,(function(r){return ct(n,e,(function(){return n.next(r)}),t)}),(function(){return ct(n,e,(function(){return n.complete()}),t)}),(function(r){return ct(n,e,(function(){return n.error(r)}),t)})))}))}function mt(e,t){return void 0===t&&(t=0),he((function(r,n){n.add(e.schedule((function(){return r.subscribe(n)}),t))}))}function vt(e,t){if(!e)throw new Error("Iterable cannot be null");return new Qe((function(r){ct(r,t,(function(){var n=e[Symbol.asyncIterator]();ct(r,t,(function(){n.next().then((function(e){e.done?r.complete():r.next(e.value)}))}),0,!0)}))}))}function yt(e,t){return t?function(e,t){if(null!=e){if(et(e))return function(e,t){return at(e).pipe(mt(t),ft(t))}(e,t);if(Ve(e))return function(e,t){return new Qe((function(r){var n=0;return t.schedule((function(){n===e.length?r.complete():(r.next(e[n++]),r.closed||this.schedule())}))}))}(e,t);if(We(e))return function(e,t){return at(e).pipe(mt(t),ft(t))}(e,t);if(tt(e))return vt(e,t);if(ot(e))return function(e,t){return new Qe((function(r){var n;return ct(r,t,(function(){n=e[nt](),ct(r,t,(function(){var e,t,o;try{t=(e=n.next()).value,o=e.done}catch(e){return void r.error(e)}o?r.complete():r.next(t)}),0,!0)})),function(){return ue(null==n?void 0:n.return)&&n.return()}}))}(e,t);if(st(e))return function(e,t){return vt(it(e),t)}(e,t)}throw rt(e)}(e,t):at(e)}var wt=Array.isArray;var kt=["addListener","removeListener"],$t=["addEventListener","removeEventListener"],xt=["on","off"];function St(e,t){return function(r){return function(n){return e[r](t,n)}}}const At=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=pt(e),n=gt(e,1/0),o=e;return o.length?1===o.length?at(o[0]):ut(n)(yt(o,r)):ht}(function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=pt(e);return yt(e,r)}(1),function e(t,r,n,o){if(ue(n)&&(o=n,n=void 0),o)return e(t,r,n).pipe((i=o,qe((function(e){return function(e,t){return wt(t)?e.apply(void 0,ve([],me(t))):e(t)}(i,e)}))));var i,s=me(function(e){return ue(e.addEventListener)&&ue(e.removeEventListener)}(t)?$t.map((function(e){return function(o){return t[e](r,o,n)}})):function(e){return ue(e.addListener)&&ue(e.removeListener)}(t)?kt.map(St(t,r)):function(e){return ue(e.on)&&ue(e.off)}(t)?xt.map(St(t,r)):[],2),a=s[0],l=s[1];if(!a&&Ve(t))return dt((function(t){return e(t,r,n)}))(at(t));if(!a)throw new TypeError("Invalid event target");return new Qe((function(e){var t=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return e.next(1<t.length?t:t[0])};return a(t),function(){return l(t)}}))}(window,"hashchange").pipe((_t=e=>e.preventDefault(),Et=ue(_t)?{next:_t,error:Mt,complete:Ct}:_t,Et?he((function(e,t){var r;null===(r=Et.subscribe)||void 0===r||r.call(Et);var n=!0;e.subscribe(new Ke(t,(function(e){var r;null===(r=Et.next)||void 0===r||r.call(Et,e),t.next(e)}),(function(){var e;n=!1,null===(e=Et.complete)||void 0===e||e.call(Et),t.complete()}),(function(e){var r;n=!1,null===(r=Et.error)||void 0===r||r.call(Et,e),t.error(e)}),(function(){var e,t;n&&(null===(e=Et.unsubscribe)||void 0===e||e.call(Et)),null===(t=Et.finalize)||void 0===t||t.call(Et)})))})):Ye))).pipe(qe((()=>window.location.hash.substr(1).split("/").filter(Boolean).map(decodeURIComponent))));var _t,Mt,Ct,Et,Tt;!function(e){e.mutant="mutant",e.test="test"}(Tt||(Tt={}));var Pt=r(8986),zt=r(3704);function jt(e,t,r){return new CustomEvent(e,{detail:t,...r})}var Ft=r(9130),Nt=r(9483),Ot=function(e,t,r,n){var o,i=arguments.length,s=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,r,s):o(t,r))||s);return i>3&&s&&Object.defineProperty(t,r,s),s};let Rt=class extends Q{constructor(){super(...arguments),this.mode="closed",this.hasDetail=!1,this.toggleReadMore=e=>{"open"===this.mode?this.mode="half":this.mode="open",e.preventDefault(),e.stopImmediatePropagation()}}get toggleMoreLabel(){switch(this.mode){case"half":return"🔼 More";case"open":return"🔽 Less";case"closed":return""}}render(){return z`<aside class="h-100 container-fluid" @click="${e=>e.stopPropagation()}">
      <div class="h-100 row">
        <header>
          <h5>
            <slot name="header"></slot>
            ${Bt(this.hasDetail,z`<button data-testId="btnReadMoreToggle" class="btn" @click="${this.toggleReadMore}">${this.toggleMoreLabel}</button>`)}
          </h5>
        </header>
        <div class="h-100 overflow-auto col-md-12">
          <slot name="summary"></slot>
          ${Bt(this.hasDetail&&"open"===this.mode,z`<slot name="detail"></slot>`)}
        </div>
      </div>
    </aside>`}};function Bt(e,t){return e?"function"==typeof t?t():t:void 0}function Lt(e,t){return null==e?void 0:t(e)}function Ut(e){switch(e){case Ft.MutantStatus.Killed:return"success";case Ft.MutantStatus.NoCoverage:return"caution";case Ft.MutantStatus.Survived:return"danger";case Ft.MutantStatus.Timeout:return"warning";case Ft.MutantStatus.Ignored:case Ft.MutantStatus.RuntimeError:case Ft.MutantStatus.CompileError:return"secondary"}}function It(e){switch(e){case ne.ih.Killing:return"success";case ne.ih.Covering:return"warning";case ne.ih.NotCovering:return"caution"}}function Dt(e){switch(e){case ne.ih.Killing:return"✅";case ne.ih.Covering:return"☂";case ne.ih.NotCovering:return"🌧"}}function Ht(e){switch(e){case Ft.MutantStatus.Killed:return"✅";case Ft.MutantStatus.NoCoverage:return"🙈";case Ft.MutantStatus.Ignored:return"🤥";case Ft.MutantStatus.Survived:return"👽";case Ft.MutantStatus.Timeout:return"⌛";case Ft.MutantStatus.RuntimeError:case Ft.MutantStatus.CompileError:return"💥"}}function Zt(...e){const t=new URL(window.location.href);return new URL(`#${e.filter(Boolean).join("/")}`,t).href}function Kt(e){return e.length>1?"s":""}function qt({fileName:e,location:t}){return e?`${e}${t?`:${t.start.line}:${t.start.column}`:""}`:""}function Vt(e){e&&!function(e){const{top:t,bottom:r}=e.getBoundingClientRect();return t>=0&&r<=(window.innerHeight||document.documentElement.clientHeight)-120}(e)&&e.scrollIntoView({block:"center",behavior:"smooth"})}function Wt(){const e="test";try{return localStorage.setItem(e,e),localStorage.removeItem(e),!0}catch(e){return!1}}Rt.styles=[le,i(Nt.Z)],Ot([te({reflect:!0})],Rt.prototype,"mode",void 0),Ot([te({reflect:!0,type:Boolean})],Rt.prototype,"hasDetail",void 0),Ot([te()],Rt.prototype,"toggleMoreLabel",null),Rt=Ot([re("mte-drawer")],Rt);var Gt=function(e,t,r,n){var o,i=arguments.length,s=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,r,s):o(t,r))||s);return i>3&&s&&Object.defineProperty(t,r,s),s};let Yt=class extends Q{constructor(){super(...arguments),this.context={view:Tt.mutant,path:[]},this.path=[],this.themeSwitch=e=>{this.theme=e.detail,Wt()&&localStorage.setItem("mutation-testing-elements-theme",this.theme)},this.subscriptions=[]}get themeBackgroundColor(){return getComputedStyle(this).getPropertyValue("--bs-body-bg")}get title(){return this.context.result?this.titlePostfix?`${this.context.result.name} - ${this.titlePostfix}`:this.context.result.name:""}firstUpdated(){var e;if(!this.theme){const t=Wt()&&localStorage.getItem("mutation-testing-elements-theme");t?this.theme=t:window.matchMedia&&(null===(e=window.matchMedia("(prefers-color-scheme: dark)"))||void 0===e?void 0:e.matches)?this.theme="dark":this.theme="light"}(0===this.path.length||this.path[0]!==Tt.mutant&&this.path[0]!==Tt.test)&&window.location.replace(Zt(`${Tt.mutant}`))}async loadData(){if(this.src)try{const e=await fetch(this.src);this.report=await e.json()}catch(e){const t=String(e);this.errorMessage=t}}async updated(e){(e.has("path")||e.has("report"))&&this.report&&(this.updateModel(this.report),this.updateContext(),this.updateTitle()),e.has("src")&&await this.loadData(),e.has("theme")&&this.theme&&this.dispatchEvent(jt("theme-changed",{theme:this.theme,themeBackgroundColor:this.themeBackgroundColor}))}updateModel(e){this.rootModel=(0,ne.xR)(e)}updateContext(){if(this.rootModel){const e=(e,t)=>t.reduce(((e,t)=>e&&e.childResults.find((e=>e.name===t))),e),t=this.path.slice(1);this.path[0]===Tt.test&&this.rootModel.testMetrics?this.context={view:Tt.test,path:t,result:e(this.rootModel.testMetrics,this.path.slice(1))}:this.context={view:Tt.mutant,path:t,result:e(this.rootModel.systemUnderTestMetrics,this.path.slice(1))}}}updateTitle(){document.title=this.title}connectedCallback(){super.connectedCallback(),this.subscriptions.push(At.subscribe((e=>this.path=e)))}disconnectedCallback(){super.disconnectedCallback(),this.subscriptions.forEach((e=>e.unsubscribe()))}renderTitle(){if(this.context.result)return z`<h1 class="display-4"
        >${this.context.result.name}${this.titlePostfix?z`<small class="text-muted"> - ${this.titlePostfix}</small>`:""}</h1
      >`}render(){return this.context.result||this.errorMessage?z`
        <div class="container-fluid">
          <div class="row">
            <div class="col-md-12">
              ${this.renderErrorMessage()}
              <mte-theme-switch @theme-switch="${this.themeSwitch}" class="theme-switch" .theme="${this.theme}"> </mte-theme-switch>
              ${this.renderTitle()} ${this.renderTabs()}
              <mte-breadcrumb .view="${this.context.view}" .path="${this.context.path}"></mte-breadcrumb>
              ${"mutant"===this.context.view&&this.context.result?z`<mte-mutant-view
                    .result="${this.context.result}"
                    .thresholds="${this.report.thresholds}"
                    .path="${this.path}"
                  ></mte-mutant-view>`:""}
              ${"test"===this.context.view&&this.context.result?z`<mte-test-view .result="${this.context.result}" .path="${this.path}"></mte-test-view>`:""}
            </div>
          </div>
        </div>
      `:z``}renderErrorMessage(){return this.errorMessage?z`<div class="alert alert-danger" role="alert">${this.errorMessage}</div>`:z``}renderTabs(){var e;return(null===(e=this.rootModel)||void 0===e?void 0:e.testMetrics)?z`<nav>
        <ul class="nav nav-tabs border-bottom-0" role="tablist">
          <li class="nav-item">
            <a class="nav-link ${"mutant"===this.context.view?"active":""}" role="tab" href="${Zt("mutant")}">👽 Mutants</a>
          </li>
          <li class="nav-item">
            <a class="nav-link ${"test"===this.context.view?"active":""}" role="tab" href="${Zt("test")}">🧪 Tests</a>
          </li>
        </ul>
      </nav>`:void 0}};function Jt(e){return te({...e,state:!0})}Yt.styles=[de,i(zt.Z),le,i(Pt.Z)],Gt([te({attribute:!1})],Yt.prototype,"report",void 0),Gt([te({attribute:!1})],Yt.prototype,"rootModel",void 0),Gt([te()],Yt.prototype,"src",void 0),Gt([te({attribute:!1})],Yt.prototype,"errorMessage",void 0),Gt([te({attribute:!1})],Yt.prototype,"context",void 0),Gt([te()],Yt.prototype,"path",void 0),Gt([te({attribute:"title-postfix"})],Yt.prototype,"titlePostfix",void 0),Gt([te({reflect:!0})],Yt.prototype,"theme",void 0),Gt([te({attribute:!1})],Yt.prototype,"themeBackgroundColor",null),Gt([te()],Yt.prototype,"title",null),Yt=Gt([re("mutation-test-report-app")],Yt);const{H:Qt}=W,Xt=()=>document.createComment(""),er=(e,t,r)=>{var n;const o=e._$AA.parentNode,i=void 0===t?e._$AB:t._$AA;if(void 0===r){const t=o.insertBefore(Xt(),i),n=o.insertBefore(Xt(),i);r=new Qt(t,n,e,e.options)}else{const t=r._$AB.nextSibling,s=r._$AM,a=s!==e;if(a){let t;null===(n=r._$AQ)||void 0===n||n.call(r,e),r._$AM=e,void 0!==r._$AP&&(t=e._$AU)!==s._$AU&&r._$AP(t)}if(t!==i||a){let e=r._$AA;for(;e!==t;){const t=e.nextSibling;o.insertBefore(e,i),e=t}}}return r},tr=(e,t,r=e)=>(e._$AI(t,r),e),rr={},nr=e=>{var t;null===(t=e._$AP)||void 0===t||t.call(e,!1,!0);let r=e._$AA;const n=e._$AB.nextSibling;for(;r!==n;){const e=r.nextSibling;r.remove(),r=e}},or=e=>(...t)=>({_$litDirective$:e,values:t});class ir{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,t,r){this._$Ct=e,this._$AM=t,this._$Ci=r}_$AS(e,t){return this.update(e,t)}update(e,t){return this.render(...t)}}const sr=(e,t)=>{var r,n;const o=e._$AN;if(void 0===o)return!1;for(const e of o)null===(n=(r=e)._$AO)||void 0===n||n.call(r,t,!1),sr(e,t);return!0},ar=e=>{let t,r;do{if(void 0===(t=e._$AM))break;r=t._$AN,r.delete(e),e=t}while(0===(null==r?void 0:r.size))},lr=e=>{for(let t;t=e._$AM;e=t){let r=t._$AN;if(void 0===r)t._$AN=r=new Set;else if(r.has(e))break;r.add(e),ur(t)}};function cr(e){void 0!==this._$AN?(ar(this),this._$AM=e,lr(this)):this._$AM=e}function dr(e,t=!1,r=0){const n=this._$AH,o=this._$AN;if(void 0!==o&&0!==o.size)if(t)if(Array.isArray(n))for(let e=r;e<n.length;e++)sr(n[e],!1),ar(n[e]);else null!=n&&(sr(n,!1),ar(n));else sr(this,e)}const ur=e=>{var t,r,n,o;2==e.type&&(null!==(t=(n=e)._$AP)&&void 0!==t||(n._$AP=dr),null!==(r=(o=e)._$AQ)&&void 0!==r||(o._$AQ=cr))};class hr extends ir{constructor(){super(...arguments),this._$AN=void 0}_$AT(e,t,r){super._$AT(e,t,r),lr(this),this.isConnected=e._$AU}_$AO(e,t=!0){var r,n;e!==this.isConnected&&(this.isConnected=e,e?null===(r=this.reconnected)||void 0===r||r.call(this):null===(n=this.disconnected)||void 0===n||n.call(this)),t&&(sr(this,e),ar(this))}setValue(e){if((e=>void 0===this._$Ct.strings)())this._$Ct._$AI(e,this);else{const t=[...this._$Ct._$AH];t[this._$Ci]=e,this._$Ct._$AI(t,this,0)}}disconnected(){}reconnected(){}}class br{}const pr=new WeakMap,gr=or(class extends hr{render(e){return N}update(e,[t]){var r;const n=t!==this.U;return n&&void 0!==this.U&&this.nt(void 0),(n||this.rt!==this.lt)&&(this.U=t,this.ht=null===(r=e.options)||void 0===r?void 0:r.host,this.nt(this.lt=e.element)),N}nt(e){"function"==typeof this.U?(void 0!==pr.get(this.U)&&this.U.call(this.ht,void 0),pr.set(this.U,e),void 0!==e&&this.U.call(this.ht,e)):this.U.value=e}get rt(){var e;return"function"==typeof this.U?pr.get(this.U):null===(e=this.U)||void 0===e?void 0:e.value}disconnected(){this.rt===this.lt&&this.nt(void 0)}reconnected(){this.nt(this.lt)}});class fr extends ir{constructor(e){if(super(e),this.it=N,2!==e.type)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(e){if(e===N||null==e)return this.vt=void 0,this.it=e;if(e===F)return e;if("string"!=typeof e)throw Error(this.constructor.directiveName+"() called with a non-string value");if(e===this.it)return this.vt;this.it=e;const t=[e];return t.raw=t,this.vt={_$litType$:this.constructor.resultType,strings:t,values:[]}}}fr.directiveName="unsafeHTML",fr.resultType=1;const mr=or(fr);var vr,yr;function wr(e){switch(function(e){return e.substr(e.lastIndexOf(".")+1).toLocaleLowerCase()}(e)){case"cs":return vr.csharp;case"html":return vr.html;case"java":return vr.java;case"js":case"cjs":case"mjs":return vr.javascript;case"ts":case"tsx":case"cts":case"mts":return vr.typescript;case"scala":return vr.scala;case"php":return vr.php;case"vue":return vr.vue;case"feature":return vr.gherkin;default:return}}function kr(e,t){var r;const n=null!==(r=wr(t))&&void 0!==r?r:"plain";let o=n;return n===vr.vue&&(o=vr.html),(0,ae.highlight)(e,ae.languages[o],o)}function $r(e,t){let r=[];const n=[],o={column:0,line:1,offset:-1},i=[];let s=!1,a=0;for(;a<e.length;){switch(s&&!xr(e[a])&&(i.forEach((e=>l(c(e)))),s=!1),e[a]){case yr.CarriageReturn:o.offset++;break;case yr.NewLine:d(),o.offset++,o.line++,o.column=0,s=!0;break;case yr.LT:{const e=h();e.isClosing?p(e):b(e);break}case yr.Amp:u(f());break;default:u(e[a])}a++}return d(),n;function l(...e){r.push(...e)}function c({attributes:e,elementName:t,isClosing:r}){return r?`</${t}>`:`<${t}${Object.entries(null!=e?e:{}).reduce(((e,[t,r])=>void 0===r?`${e} ${t}`:`${e} ${t}="${r}"`),"")}>`}function d(){i.forEach((e=>l(c({...e,isClosing:!0})))),n.push(r.join("")),r=[]}function u(e){if(o.column++,o.offset++,t)for(const e of t(o))e.isClosing?p(e):(l(c(e)),i.push(e));l(e)}function h(){a++;const t="/"===e[a]||void 0;t&&a++;const r=a;for(;!xr(e[a])&&e[a]!==yr.GT;)a++;return{elementName:e.substring(r,a),attributes:function(){const t=Object.create(null);for(;a<e.length;){const r=e[a];if(r===yr.GT)return t;if(!xr(r)){const{name:e,value:r}=g();t[e]=r}a++}throw new Error(`Missing closing tag near ${e.substr(a-10)}`)}(),isClosing:t}}function b(e){i.push(e),l(c(e))}function p(e){let t;for(t=i.length-1;t>=0;t--){const r=i[t];if(e.elementName===r.elementName&&r.id===e.id){l(c(e)),i.splice(t,1);for(let e=t;e<i.length;e++)l(c(i[e]));break}l(c({...r,isClosing:!0}))}if(-1===t)throw new Error(`Cannot find corresponding opening tag for ${c(e)}`)}function g(){const t=a;for(;"="!==e[a];)a++;const r=e.substring(t,a);a++;const n=function(){'"'===e[a]&&a++;const t=a;for(;'"'!==e[a];)a++;return e.substring(t,a)}();return{name:r,value:n}}function f(){const t=a;for(;e[a]!==yr.Semicolon;)a++;return e.substring(t,a+1)}}function xr(e){return e===yr.NewLine||e===yr.Space||e===yr.Tab}function Sr(e,t){return e.line>t.line||e.line===t.line&&e.column>=t.column}!function(e){e.csharp="cs",e.java="java",e.javascript="javascript",e.html="html",e.php="php",e.scala="scala",e.typescript="typescript",e.vue="vue",e.gherkin="gherkin"}(vr||(vr={})),function(e){e.CarriageReturn="\r",e.NewLine="\n",e.Space=" ",e.Amp="&",e.Semicolon=";",e.LT="<",e.GT=">",e.Tab="\t"}(yr||(yr={}));var Ar=r(5545),_r=function(e,t,r,n){var o,i=arguments.length,s=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,r,s):o(t,r))||s);return i>3&&s&&Object.defineProperty(t,r,s),s};const Mr="diff-old";let Cr=class extends Q{constructor(){super(...arguments),this.filters=[],this.selectedMutantStates=[],this.lines=[],this.mutants=[],this.codeRef=new br,this.filtersChanged=e=>{this.selectedMutantStates=e.detail},this.codeClicked=e=>{if(e.stopPropagation(),e.target instanceof Element){let t=e.target;const r=[];for(;t instanceof Element;t=t.parentElement){const e=t.getAttribute("mutant-id"),n=this.mutants.find((({id:t})=>t.toString()===e));n&&r.push(n)}const n=(this.selectedMutant?r.indexOf(this.selectedMutant):-1)+1;r[n]?(this.toggleMutant(r[n]),Tr()):this.selectedMutant&&(this.toggleMutant(this.selectedMutant),Tr())}},this.nextMutant=()=>{const e=this.selectedMutant?(this.mutants.indexOf(this.selectedMutant)+1)%this.mutants.length:0;this.mutants[e]&&this.toggleMutant(this.mutants[e])},this.previousMutant=()=>{const e=this.selectedMutant?(this.mutants.indexOf(this.selectedMutant)+this.mutants.length-1)%this.mutants.length:this.mutants.length-1;this.mutants[e]&&this.toggleMutant(this.mutants[e])}}render(){const e=new Map;for(const t of this.mutants){let r=e.get(t.location.start.line);r||(r=[],e.set(t.location.start.line,r)),r.push(t)}const t=t=>this.renderMutantDots([...e.entries()].filter((([e])=>e>t)).flatMap((([,e])=>e)));return z`
      <div class="row">
        <div class="col-md-12">
          <mte-state-filter
            allow-toggle-all
            .filters="${this.filters}"
            @filters-changed="${this.filtersChanged}"
            @next=${this.nextMutant}
            @previous=${this.previousMutant}
          ></mte-state-filter>
          <pre
            @click="${this.codeClicked}"
            id="report-code-block"
            class="line-numbers ${this.selectedMutantStates.map((e=>`mte-selected-${e}`)).join(" ")}"
          ><code ${gr(this.codeRef)} class="language-${this.model.language}"><table>${this.lines.map(((r,n)=>{const o=n+1;return z`<tr class="line"
              ><td class="line-number"></td><td class="line-marker"></td
              ><td class="code"
                >${mr(r)}${this.renderMutantDots(e.get(o))}${this.lines.length===o?t(o):""}</td
              ></tr
            >`}))}</table></code></pre>
        </div>
      </div>
    `}renderMutantDots(e){return z`${null==e?void 0:e.map((e=>{var t;return j`<svg mutant-id="${e.id}" class="mutant-dot ${(null===(t=this.selectedMutant)||void 0===t?void 0:t.id)===e.id?"selected":e.status}" height="10" width="10">
          <title>${Er(e)}</title>
          <circle cx="5" cy="5" r="5" />
          </svg>`}))}`}toggleMutant(e){if(this.removeCurrentDiff(),this.selectedMutant===e)return this.selectedMutant=void 0,void this.dispatchEvent(jt("mutant-selected",{selected:!1,mutant:e}));this.selectedMutant=e;const t=this.codeRef.value.querySelectorAll("tr.line");for(let r=e.location.start.line-1;r<e.location.end.line;r++)t.item(r).classList.add(Mr);const r=this.highlightedReplacementRows(e),n=t.item(e.location.end.line-1);n.insertAdjacentHTML("afterend",r),Vt(n),this.dispatchEvent(jt("mutant-selected",{selected:!0,mutant:e}))}removeCurrentDiff(){this.codeRef.value.querySelectorAll(".diff-old").forEach((e=>e.classList.remove(Mr))),this.codeRef.value.querySelectorAll(".diff-new").forEach((e=>e.remove()))}update(e){if(e.has("model")&&this.model){this.filters=[Ft.MutantStatus.Killed,Ft.MutantStatus.Survived,Ft.MutantStatus.NoCoverage,Ft.MutantStatus.Ignored,Ft.MutantStatus.Timeout,Ft.MutantStatus.CompileError,Ft.MutantStatus.RuntimeError].filter((e=>this.model.mutants.some((t=>t.status===e)))).map((e=>({enabled:[Ft.MutantStatus.Survived,Ft.MutantStatus.NoCoverage,Ft.MutantStatus.Timeout].includes(e),count:this.model.mutants.filter((t=>t.status===e)).length,status:e,label:`${Ht(e)} ${e}`,context:Ut(e)})));const e=kr(this.model.source,this.model.name),t=new Set,r=new Set(this.model.mutants);this.lines=$r(e,(function*(e){for(const r of t)Sr(e,r.location.end)&&(t.delete(r),yield{elementName:"span",id:r.id,isClosing:!0});for(const n of r)Sr(e,n.location.start)&&(t.add(n),r.delete(n),yield{elementName:"span",id:n.id,attributes:{class:`mutant ${n.status}`,title:Er(n),"mutant-id":n.id}})}))}(e.has("model")&&this.model||e.has("selectedMutantStates"))&&(this.mutants=this.model.mutants.filter((e=>this.selectedMutantStates.includes(e.status))).sort(((e,t)=>Sr(e.location.start,t.location.start)?1:-1)),this.selectedMutant&&!this.mutants.includes(this.selectedMutant)&&this.toggleMutant(this.selectedMutant)),super.update(e)}highlightedReplacementRows(e){const t=e.getMutatedLines().trimEnd(),r=e.getOriginalLines().trimEnd(),[n,o]=function(e,t){let r=0,n=t.length-1;for(;e[r]===t[r]&&r<t.length;)r++;const o=e.length-t.length;for(;e[n+o]===t[n]&&n>r;)n--;n===r&&(xr(t[r-1])||r--),n++;const i=t.substring(r,n);return["true","false"].forEach((e=>{i===e.substr(0,e.length-1)&&e[e.length-1]===t[n]&&n++,i===e.substr(1,e.length)&&e[0]===t[r-1]&&r--})),[r,n]}(r,t);return $r(kr(t,this.model.name),(function*({offset:e}){e===n?yield{elementName:"span",id:"diff-focus",attributes:{class:"diff-focus"}}:e===o&&(yield{elementName:"span",id:"diff-focus",isClosing:!0})})).map((e=>`<tr class="diff-new"><td class="empty-line-number"></td><td class="line-marker"></td><td class="code">${e}</td></tr>`)).join("")}};function Er(e){return`${e.mutatorName} ${e.status}`}function Tr(){var e;null===(e=window.getSelection())||void 0===e||e.removeAllRanges()}Cr.styles=[ce,le,i(Ar.Z)],_r([Jt()],Cr.prototype,"filters",void 0),_r([te()],Cr.prototype,"model",void 0),_r([Jt()],Cr.prototype,"selectedMutantStates",void 0),_r([Jt()],Cr.prototype,"selectedMutant",void 0),_r([Jt()],Cr.prototype,"lines",void 0),_r([Jt()],Cr.prototype,"mutants",void 0),Cr=_r([re("mte-file")],Cr);var Pr=function(e,t,r,n){var o,i=arguments.length,s=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,r,s):o(t,r))||s);return i>3&&s&&Object.defineProperty(t,r,s),s};let zr=class extends Q{get rootName(){switch(this.view){case Tt.mutant:return"All files";case Tt.test:return"All tests"}}render(){return z`
      <ol class="breadcrumb rounded">
        ${this.path&&this.path.length>0?this.renderLink(this.rootName,[]):this.renderActiveItem(this.rootName)}
        ${this.renderBreadcrumbItems()}
      </ol>
    `}renderBreadcrumbItems(){if(this.path){const e=this.path;return e.map(((t,r)=>r===e.length-1?this.renderActiveItem(t):this.renderLink(t,e.slice(0,r+1))))}}renderActiveItem(e){return z` <li class="breadcrumb-item active" aria-current="page">${e}</li> `}renderLink(e,t){return z` <li class="breadcrumb-item"><a href="${Zt(this.view,...t)}">${e}</a></li> `}};zr.styles=[le],Pr([te()],zr.prototype,"path",void 0),Pr([te()],zr.prototype,"view",void 0),zr=Pr([re("mte-breadcrumb")],zr);const jr=(e,t,r)=>{const n=new Map;for(let o=t;o<=r;o++)n.set(e[o],o);return n},Fr=or(class extends ir{constructor(e){if(super(e),2!==e.type)throw Error("repeat() can only be used in text expressions")}dt(e,t,r){let n;void 0===r?r=t:void 0!==t&&(n=t);const o=[],i=[];let s=0;for(const t of e)o[s]=n?n(t,s):s,i[s]=r(t,s),s++;return{values:i,keys:o}}render(e,t,r){return this.dt(e,t,r).values}update(e,[t,r,n]){var o;const i=(e=>e._$AH)(e),{values:s,keys:a}=this.dt(t,r,n);if(!Array.isArray(i))return this.ct=a,s;const l=null!==(o=this.ct)&&void 0!==o?o:this.ct=[],c=[];let d,u,h=0,b=i.length-1,p=0,g=s.length-1;for(;h<=b&&p<=g;)if(null===i[h])h++;else if(null===i[b])b--;else if(l[h]===a[p])c[p]=tr(i[h],s[p]),h++,p++;else if(l[b]===a[g])c[g]=tr(i[b],s[g]),b--,g--;else if(l[h]===a[g])c[g]=tr(i[h],s[g]),er(e,c[g+1],i[h]),h++,g--;else if(l[b]===a[p])c[p]=tr(i[b],s[p]),er(e,i[h],i[b]),b--,p++;else if(void 0===d&&(d=jr(a,p,g),u=jr(l,h,b)),d.has(l[h]))if(d.has(l[b])){const t=u.get(a[p]),r=void 0!==t?i[t]:null;if(null===r){const t=er(e,i[h]);tr(t,s[p]),c[p]=t}else c[p]=tr(r,s[p]),er(e,i[h],r),i[t]=null;p++}else nr(i[b]),b--;else nr(i[h]),h++;for(;p<=g;){const t=er(e,c[g+1]);tr(t,s[p]),c[p++]=t}for(;h<=b;){const e=i[h++];null!==e&&nr(e)}return this.ct=a,((e,t=rr)=>{e._$AH=t})(e,c),F}});var Nr=r(1276),Or=function(e,t,r,n){var o,i=arguments.length,s=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,r,s):o(t,r))||s);return i>3&&s&&Object.defineProperty(t,r,s),s};let Rr=class extends Q{constructor(){super(...arguments),this.next=e=>{e.stopPropagation(),this.dispatchEvent(jt("next",void 0,{bubbles:!0,composed:!0}))},this.previous=e=>{e.stopPropagation(),this.dispatchEvent(jt("previous",void 0,{bubbles:!0,composed:!0}))}}updated(e){e.has("filters")&&this.dispatchFiltersChangedEvent()}checkboxChanged(e,t){e.enabled=t,this.dispatchFiltersChangedEvent()}dispatchFiltersChangedEvent(){this.dispatchEvent(jt("filters-changed",this.filters.filter((({enabled:e})=>e)).map((({status:e})=>e))))}render(){return z`
      <div class="legend col-md-12 d-flex align-items-center">
        <div class="d-flex me-2">
          <button title="Previous" @click=${this.previous} class="me-1 btn btn-sm btn-secondary mte-previous" type="button">&lt;</button>
          <button title="Next" @click=${this.next} class="btn btn-sm btn-secondary mte-next" type="button">&gt;</button>
        </div>

        ${this.filters&&Fr(this.filters,(e=>JSON.stringify(e)),(e=>z`<div data-status="${e.status}" class="form-check form-check-inline">
            <label class="form-check-label">
              <input
                class="form-check-input"
                type="checkbox"
                ?checked="${e.enabled}"
                value="${e.status}"
                @input="${t=>this.checkboxChanged(e,t.target.checked)}"
              />
              <span class="badge bg-${e.context}">${e.label} (${e.count})</span>
            </label>
          </div>`))}
      </div>
    `}};Rr.styles=[le,i(Nr.Z)],Or([te({type:Array})],Rr.prototype,"filters",void 0),Rr=Or([re("mte-state-filter")],Rr);var Br=r(4835),Lr=function(e,t,r,n){var o,i=arguments.length,s=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,r,s):o(t,r))||s);return i>3&&s&&Object.defineProperty(t,r,s),s};let Ur=class extends Q{constructor(){super(...arguments),this.dispatchThemeChangedEvent=e=>{const t=e.target.checked;this.dispatchEvent(jt("theme-switch",t?"dark":"light"))}}render(){return z`
      <div class="check-box-container" @click="${e=>e.stopPropagation()}">
        <input type="checkbox" @click="${this.dispatchThemeChangedEvent}" ?checked="${"dark"==this.theme}" id="darkTheme" />
        <label for="darkTheme">Dark</label>
      </div>
    `}};Ur.styles=[le,i(Br.Z)],Lr([te()],Ur.prototype,"theme",void 0),Ur=Lr([re("mte-theme-switch")],Ur);var Ir=r(371),Dr=function(e,t,r,n){var o,i=arguments.length,s=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,r,s):o(t,r))||s);return i>3&&s&&Object.defineProperty(t,r,s),s};const Hr=e=>z`${e.name}${e.sourceFile&&e.location?` (${qt(e)})`:""}`;let Zr=class extends Q{constructor(){super(...arguments),this.mode="closed"}render(){var e,t;return z`<mte-drawer ?hasDetail="${(null===(e=this.mutant)||void 0===e?void 0:e.killedByTests)||(null===(t=this.mutant)||void 0===t?void 0:t.coveredByTests)}" .mode="${this.mode}">
      ${Lt(this.mutant,(e=>z`
          <span slot="header"
            >${e.id} ${Ht(e.status)} ${e.mutatorName} ${e.status}
            (${e.location.start.line}:${e.location.start.column})</span
          >
          <span slot="summary">${this.renderSummary()}</span>
          <span slot="detail">${this.renderDetail()}</span>
        `))}
    </mte-drawer>`}renderSummary(){var e,t,r,n,o,i,s;return z`<div class="d-flex mx-2">
      ${(null===(t=null===(e=this.mutant)||void 0===e?void 0:e.killedByTests)||void 0===t?void 0:t[0])?z`<h6 class="pe-4"
            >🎯 Killed by: ${null===(r=this.mutant.killedByTests)||void 0===r?void 0:r[0].name}
            ${this.mutant.killedByTests.length>1?z`(and ${this.mutant.killedByTests.length-1} more)`:void 0}</h6
          >`:void 0}
      ${Bt(null===(n=this.mutant)||void 0===n?void 0:n.static,z`<h6 class="pe-4">🗿 Static mutant</h6>`)}
      ${Lt(null===(o=this.mutant)||void 0===o?void 0:o.coveredByTests,(e=>{var t;return z`<h6 class="pe-4"
            >☂️ Covered by ${e.length} test${Kt(e)}
            ${Bt((null===(t=this.mutant)||void 0===t?void 0:t.status)===Ft.MutantStatus.Survived,"(yet still survived)")}</h6
          >`}))}
      ${Lt(null===(i=this.mutant)||void 0===i?void 0:i.statusReason,(e=>z`<h6 class="pe-4" title="Reason for the ${this.mutant.status} status">🕵️ ${e}</h6>`))}
      ${Lt(null===(s=this.mutant)||void 0===s?void 0:s.description,(e=>z`<h6 class="pe-4">📖 ${e}</h6>`))}
    </div>`}renderDetail(){var e,t,r,n;return z`<ul class="list-group">
      ${null===(t=null===(e=this.mutant)||void 0===e?void 0:e.killedByTests)||void 0===t?void 0:t.map((e=>z`<li title="This mutant was killed by this test" class="list-group-item">🎯 ${Hr(e)}</li>`))}
      ${null===(n=null===(r=this.mutant)||void 0===r?void 0:r.coveredByTests)||void 0===n?void 0:n.filter((e=>{var t,r;return!(null===(r=null===(t=this.mutant)||void 0===t?void 0:t.killedByTests)||void 0===r?void 0:r.includes(e))})).map((e=>z`<li class="list-group-item" title="This mutant was covered by this test">☂️ ${Hr(e)}</li>`))}
    </ul>`}};Zr.styles=[le,i(Ir.Z)],Dr([te()],Zr.prototype,"mutant",void 0),Dr([te({reflect:!0})],Zr.prototype,"mode",void 0),Zr=Dr([re("mte-drawer-mutant")],Zr);var Kr=r(3813),qr=function(e,t,r,n){var o,i=arguments.length,s=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,r,s):o(t,r))||s);return i>3&&s&&Object.defineProperty(t,r,s),s};let Vr=class extends Q{constructor(){super(...arguments),this.drawerMode="closed",this.handleClick=()=>{this.drawerMode="closed"},this.handleMutantSelected=e=>{this.selectedMutant=e.detail.mutant,this.drawerMode=e.detail.selected?"half":"closed"}}updated(e){e.has("result")&&!this.result.file&&(this.drawerMode="closed")}render(){return z`
      <main @click="${this.handleClick}">
        <div class="row">
          <div class="totals col-sm-11">
            <mte-metrics-table .columns="${Wr}" .currentPath="${this.path}" .thresholds="${this.thresholds}" .model="${this.result}">
            </mte-metrics-table>
          </div>
        </div>
        ${this.result.file?z`<mte-file @mutant-selected="${this.handleMutantSelected}" .model="${this.result.file}"></mte-file>`:""}
      </main>
      <mte-drawer-mutant .mode="${this.drawerMode}" .mutant="${this.selectedMutant}"></mte-drawer-mutant>
    `}};Vr.styles=[le,i(Kr.Z)],qr([te()],Vr.prototype,"drawerMode",void 0),qr([te()],Vr.prototype,"selectedMutant",void 0),qr([te()],Vr.prototype,"result",void 0),qr([te({attribute:!1,reflect:!1})],Vr.prototype,"thresholds",void 0),qr([te({attribute:!1,reflect:!1})],Vr.prototype,"path",void 0),Vr=qr([re("mte-mutant-view")],Vr);const Wr=[{key:"mutationScore",label:"Mutation score",tooltip:"The percentage of mutants that were detected. The higher, the better!",category:"percentage"},{key:"killed",label:"# Killed",tooltip:"At least one test failed while these mutants were active. This is what you want!",category:"number"},{key:"survived",label:"# Survived",tooltip:"All tests passed while these mutants were active. You're missing a test for them.",category:"number"},{key:"timeout",label:"# Timeout",tooltip:"Running the tests while these mutants were active resulted in a timeout. For example, an infinite loop.",category:"number"},{key:"noCoverage",label:"# No coverage",tooltip:"These mutants aren't covered by one of your tests and survived as a result.",category:"number"},{key:"ignored",label:"# Ignored",tooltip:"These mutants weren't tested because they are ignored. Either by user action, or for another reason.",category:"number"},{key:"runtimeErrors",label:"# Runtime errors",tooltip:"Running tests when these mutants are active resulted in an error (rather than a failed test). For example: an out of memory error.",category:"number"},{key:"compileErrors",label:"# Compile errors",tooltip:"Mutants that caused a compile error.",category:"number"},{key:"totalDetected",label:"Total detected",tooltip:"The number of mutants detected by your tests (killed + timeout).",category:"number",width:"large",isHeader:!0},{key:"totalUndetected",label:"Total undetected",tooltip:"The number of mutants that are not detected by your tests (survived + no coverage).",category:"number",width:"large",isHeader:!0},{key:"totalMutants",label:"Total mutants",tooltip:"All mutants (valid + invalid + ignored)",category:"number",width:"large",isHeader:!0}];var Gr=r(9827),Yr=function(e,t,r,n){var o,i=arguments.length,s=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,r,s):o(t,r))||s);return i>3&&s&&Object.defineProperty(t,r,s),s};let Jr=class extends Q{constructor(){super(...arguments),this.drawerMode="closed",this.handleClick=()=>{this.drawerMode="closed"},this.handleTestSelected=e=>{this.selectedTest=e.detail.test,this.drawerMode=e.detail.selected?"half":"closed"}}updated(e){e.has("result")&&!this.result.file&&(this.drawerMode="closed")}render(){return z`
      <main @click="${this.handleClick}">
        <div class="row">
          <div class="totals col-sm-11">
            <mte-metrics-table .columns="${Qr}" .currentPath="${this.path}" .model="${this.result}"> </mte-metrics-table>
          </div>
        </div>
        ${this.result.file?z`<mte-test-file @test-selected="${this.handleTestSelected}" .model="${this.result.file}"></mte-test-file>`:""}
      </main>
      <mte-drawer-test .mode="${this.drawerMode}" .test="${this.selectedTest}"></mte-drawer-test>
    `}};Jr.styles=[le,i(Gr.Z)],Yr([te()],Jr.prototype,"drawerMode",void 0),Yr([te()],Jr.prototype,"result",void 0),Yr([te({attribute:!1,reflect:!1})],Jr.prototype,"path",void 0),Yr([te()],Jr.prototype,"selectedTest",void 0),Jr=Yr([re("mte-test-view")],Jr);const Qr=[{key:"killing",label:"# Killing",tooltip:"These tests killed at least one mutant",width:"normal",category:"number"},{key:"covering",label:"# Covering",tooltip:"These tests are covering at least one mutant, but not killing any of them.",width:"normal",category:"number"},{key:"notCovering",label:"# Not Covering",tooltip:"These tests were not covering a mutant (and thus not killing any of them).",width:"normal",category:"number"},{key:"total",label:"Total tests",width:"large",category:"number",isHeader:!0}];var Xr=r(8469),en=function(e,t,r,n){var o,i=arguments.length,s=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,r,s):o(t,r))||s);return i>3&&s&&Object.defineProperty(t,r,s),s};let tn=class extends Q{constructor(){super(...arguments),this.currentPath=[],this.thresholds={high:80,low:60}}render(){return z`${this.model?z`<table class="table table-hover table-no-top">${this.renderTableHeadRow()}${this.renderTableBody(this.model)}</table>`:""}`}renderTableHeadRow(){return z`<thead>
      <th scope="col" colspan="2" style="width: 217px">
        <div
          ><span>File / Directory</span
          ><a
            href="https://stryker-mutator.io/docs/mutation-testing-elements/mutant-states-and-metrics"
            target="_blank"
            class="info-icon"
            title="What does this all mean?"
            >ℹ</a
          ></div
        >
      </th>
      ${this.columns.map((e=>this.renderTableHead(e)))}
    </thead>`}renderTableHead(e){const t=e.tooltip?z`<mte-tooltip title="${e.tooltip}">${e.label}</mte-tooltip>`:z`<span>${e.label}</span>`;return"percentage"===e.category?z` <th colspan="2"> ${t} </th>`:z`<th class="rotate text-center" style="width: ${"large"===e.width?70:50}px">
      <div>${t}</div>
    </th>`}renderTableBody(e){return z`<tbody>${this.renderRow(e.name,e)} ${(()=>e.file?void 0:e.childResults.map((e=>{const t=[e.name];for(;!e.file&&1===e.childResults.length;)e=e.childResults[0],t.push(e.name);return this.renderRow(t.join("/"),e,...this.currentPath,...t)})))()}</tbody>`}renderRow(e,t,...r){return z`<tr title="${t.name}" class="align-middle">
      <td style="width: 32px;" class="icon"><mte-file-icon file-name="${t.name}" ?file="${t.file}"></mte-file-icon></td>
      <td>${r.length>0?z`<a href="${Zt(...r)}">${e}</a>`:z`<span>${t.name}</span>`}</td>
      ${this.columns.map((e=>this.renderCell(e,t.metrics)))}
    </tr>`}renderCell(e,t){const r=t[e.key];if("percentage"===e.category){const e=!isNaN(r),t=this.determineColoringClass(r),n=r.toFixed(2),o=`width: ${r}%`;return z`<td>
          ${e?z` <div class="progress">
                <div
                  class="progress-bar bg-${t}"
                  role="progressbar"
                  aria-valuenow="${n}"
                  aria-valuemin="0"
                  aria-valuemax="100"
                  style="${o}"
                >
                  ${n}%
                </div>
              </div>`:z` <span class="fw-bold text-muted">N/A</span> `}
        </td>
        <td style="width: 50px;" class="fw-bold text-center text-${t}">${e?n:void 0}</td>`}return e.isHeader?z`<th class="text-center">${r}</th>`:z`<td class="text-center">${r}</td>`}determineColoringClass(e){return!isNaN(e)&&this.thresholds?e<this.thresholds.low?"danger":e<this.thresholds.high?"warning":"success":"default"}};tn.styles=[le,i(Xr.Z)],en([te()],tn.prototype,"model",void 0),en([te()],tn.prototype,"currentPath",void 0),en([te({type:Array})],tn.prototype,"columns",void 0),en([te()],tn.prototype,"thresholds",void 0),tn=en([re("mte-metrics-table")],tn);var rn=r(5110),nn=function(e,t,r,n){var o,i=arguments.length,s=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,r,s):o(t,r))||s);return i>3&&s&&Object.defineProperty(t,r,s),s};let on=class extends Q{constructor(){super(...arguments),this.filters=[],this.lines=[],this.enabledStates=[],this.tests=[],this.filtersChanged=e=>{this.enabledStates=e.detail,this.selectedTest&&!this.enabledStates.includes(this.selectedTest.status)&&this.toggleTest(this.selectedTest)},this.nextTest=()=>{const e=this.selectedTest?(this.tests.findIndex((({id:e})=>e===this.selectedTest.id))+1)%this.tests.length:0;this.selectTest(this.tests[e])},this.previousTest=()=>{const e=this.selectedTest?(this.tests.findIndex((({id:e})=>e===this.selectedTest.id))+this.tests.length-1)%this.tests.length:this.tests.length-1;this.selectTest(this.tests[e])}}toggleTest(e){this.selectedTest===e?(this.selectedTest=void 0,this.dispatchEvent(jt("test-selected",{selected:!1,test:e}))):(this.selectedTest=e,this.dispatchEvent(jt("test-selected",{selected:!0,test:e})),Vt(this.shadowRoot.querySelector(`[test-id="${e.id}"]`)))}selectTest(e){e&&this.toggleTest(e)}render(){return z`
      <div class="row">
        <div class="col-md-12">
          <mte-state-filter
            @next=${this.nextTest}
            @previous=${this.previousTest}
            .filters="${this.filters}"
            @filters-changed="${this.filtersChanged}"
          ></mte-state-filter>
          ${this.renderTestList()} ${this.renderCode()}
        </div>
      </div>
    `}renderTestList(){const e=this.tests.filter((e=>!e.location));if(e.length)return z`<div class="list-group">
        ${e.map((e=>{var t;return z`<button
            type="button"
            test-id="${e.id}"
            @click=${t=>{t.stopPropagation(),this.toggleTest(e)}}
            class="mte-test-list-group-item list-group-item list-group-item-action${(null===(t=this.selectedTest)||void 0===t?void 0:t.id)===e.id?" active":""}"
            ><span class="emblem">${Dt(e.status)}</span> ${e.name} [${e.status}]</button
          >`}))}
      </div>`}renderCode(){var e;if(null===(e=this.model)||void 0===e?void 0:e.source){const e=new Map;for(const t of this.tests)if(t.location){let r=e.get(t.location.start.line);r||(r=[],e.set(t.location.start.line,r)),r.push(t)}const t=t=>this.renderTestDots([...e.entries()].filter((([e])=>e>t)).flatMap((([,e])=>e)));return z`<pre id="report-code-block" class="line-numbers"><code class="language-${wr(this.model.name)}"><table>
        ${this.lines.map(((r,n)=>z`<tr class="line"
            ><td class="line-number"></td><td class="line-marker"></td
            ><td class="code"
              >${mr(r)}${this.renderTestDots(e.get(n+1))}${this.lines.length===n+1?t(n+1):""}</td
            ></tr
          >`))}</table></code></pre>`}}renderTestDots(e){return z`${null==e?void 0:e.map((e=>j`<svg test-id="${e.id}" class="test-dot ${this.selectedTest===e?"selected":e.status}" @click=${t=>{t.stopPropagation(),this.toggleTest(e)}} height="10" width="10">
          <title>${function(e){return`${e.name} (${e.status})`}(e)}</title>
          <circle cx="5" cy="5" r="5" />
          </svg>`))}`}update(e){if(e.has("model")&&this.model){const e=this.model;this.filters=[ne.ih.Killing,ne.ih.Covering,ne.ih.NotCovering].filter((t=>e.tests.some((e=>e.status===t)))).map((t=>({enabled:!0,count:e.tests.filter((e=>e.status===t)).length,status:t,label:`${Dt(t)} ${t}`,context:It(t)}))),this.model.source&&(this.lines=$r(kr(this.model.source,this.model.name)))}(e.has("model")||e.has("enabledStates"))&&this.model&&(this.tests=this.model.tests.filter((e=>this.enabledStates.includes(e.status))).sort(((e,t)=>e.location&&t.location?Sr(e.location.start,t.location.start)?1:-1:this.model.tests.indexOf(e)-this.model.tests.indexOf(t)))),super.update(e)}};on.styles=[ce,le,i(rn.Z)],nn([te()],on.prototype,"model",void 0),nn([Jt()],on.prototype,"filters",void 0),nn([Jt()],on.prototype,"lines",void 0),nn([Jt()],on.prototype,"enabledStates",void 0),nn([Jt()],on.prototype,"selectedTest",void 0),nn([Jt()],on.prototype,"tests",void 0),on=nn([re("mte-test-file")],on);var sn=r(4642),an=function(e,t,r,n){var o,i=arguments.length,s=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,r,s):o(t,r))||s);return i>3&&s&&Object.defineProperty(t,r,s),s};const ln=e=>z`${e.id} <code>${e.getMutatedLines()}</code> (${qt(e)})`;let cn=class extends Q{constructor(){super(...arguments),this.mode="closed"}render(){var e,t;return z`<mte-drawer ?hasDetail="${(null===(e=this.test)||void 0===e?void 0:e.killedMutants)||(null===(t=this.test)||void 0===t?void 0:t.coveredMutants)}" .mode="${this.mode}">
      ${Lt(this.test,(e=>z`
          <span slot="header"
            >${e.id} ${Dt(e.status)} ${e.name} [${e.status}]
            ${e.location?z`(${e.location.start.line}:${e.location.start.column})`:""}</span
          >
          <span slot="summary">${this.renderSummary()}</span>
          <span slot="detail">${this.renderDetail()}</span>
        `))}</mte-drawer
    >`}renderSummary(){var e,t,r,n;return z`<div class="d-flex mx-2">
      ${(null===(t=null===(e=this.test)||void 0===e?void 0:e.killedMutants)||void 0===t?void 0:t[0])?z`<h6 class="pe-4"
            >🎯 Killed: ${ln(null===(r=this.test.killedMutants)||void 0===r?void 0:r[0])}
            ${this.test.killedMutants.length>1?z`(and ${this.test.killedMutants.length-1} more)`:""}</h6
          >`:""}
      ${Lt(null===(n=this.test)||void 0===n?void 0:n.coveredMutants,(e=>{var t;return z`<h6 class="pe-4">
            ☂️ Covered ${e.length} mutant${Kt(e)}
            ${Bt((null===(t=this.test)||void 0===t?void 0:t.status)===ne.ih.Covering,"(yet didn't kill any of them)")}
          </h6>`}))}
    </div>`}renderDetail(){var e,t,r,n;return z`<ul class="list-group">
      ${null===(t=null===(e=this.test)||void 0===e?void 0:e.killedMutants)||void 0===t?void 0:t.map((e=>z`<li title="This test killed this mutant" class="list-group-item">🎯 ${ln(e)}</li>`))}
      ${null===(n=null===(r=this.test)||void 0===r?void 0:r.coveredMutants)||void 0===n?void 0:n.filter((e=>{var t,r;return!(null===(r=null===(t=this.test)||void 0===t?void 0:t.killedMutants)||void 0===r?void 0:r.includes(e))})).map((e=>z`<li class="list-group-item" title="This test covered this mutant">☂️ ${ln(e)}</li>`))}
    </ul>`}};cn.styles=[le,i(sn.Z)],an([te()],cn.prototype,"test",void 0),an([te({reflect:!0})],cn.prototype,"mode",void 0),cn=an([re("mte-drawer-test")],cn);var dn=r(8847),un=function(e,t,r,n){var o,i=arguments.length,s=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,r,s):o(t,r))||s);return i>3&&s&&Object.defineProperty(t,r,s),s};let hn=class extends Q{get language(){return wr(this.fileName)}get isTestFile(){const e=this.fileName.substr(0,this.fileName.lastIndexOf(".")).toLowerCase();return e.endsWith("spec")||e.endsWith("test")}get cssClass(){var e,t;return`${this.isFile?null!==(t=null===(e=this.language)||void 0===e?void 0:e.toString())&&void 0!==t?t:"unknown":"directory"}${this.isTestFile?" test":""}`}render(){if(!this.isFile)return j`<svg aria-label="directory" class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" role="img"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"></path></svg>`;if(!this.language)return j`<svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"></path></svg>`;switch(this.language){case vr.csharp:return j`<svg class="${this.cssClass}" aria-label="cs" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><g><path d="M7.1 15.9c0-1.3.2-2.4.6-3.4.4-1 .9-1.8 1.6-2.5.7-.7 1.5-1.2 2.4-1.6s1.9-.5 2.9-.5 1.9.2 2.7.6c.8.4 1.5.9 2 1.4l-2.2 2.5c-.4-.3-.7-.6-1.1-.7-.4-.1-.8-.3-1.4-.3-.5 0-.9.1-1.3.3-.4.2-.8.5-1.1.9s-.5.8-.7 1.4c-.2.6-.3 1.2-.3 1.9 0 1.5.3 2.6 1 3.3.7.8 1.5 1.2 2.6 1.2.5 0 1-.1 1.4-.3.4-.2.8-.5 1.1-.9l2.2 2.5c-.7.8-1.4 1.3-2.2 1.7-.8.4-1.7.6-2.7.6s-2-.2-2.9-.5-1.7-.8-2.4-1.5-1.1-1.7-1.5-2.7c-.5-.9-.7-2.1-.7-3.4z"/><path d="M21.8 17.1h-1l-.4 2.4h-1.2l.4-2.4h-1.2V16h1.5l.2-1.6h-1.3v-1.1h1.5l.4-2.4h1.2l-.4 2.4h1l.4-2.4h1.2l-.4 2.4H25v1.1h-1.6l-.2 1.6h1.3v1.1h-1.6l-.4 2.4h-1.2c0 .1.5-2.4.5-2.4zm-.8-1h1l.2-1.6h-1l-.2 1.6z"/></g></svg>`;case vr.html:return j`<svg class="${this.cssClass}" aria-label="html" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M8 15l6-5.6V12l-4.5 4 4.5 4v2.6L8 17v-2zm16 2.1l-6 5.6V20l4.6-4-4.6-4V9.3l6 5.6v2.2z"/></svg>`;case vr.java:return j`<svg class="${this.cssClass}" aria-label="java" xmlns="http://www.w3.org/2000/svg" viewBox="-4 -4 20 20"><path class="cls-1" d="M6 0a6 6 0 1 0 6 6 6 6 0 0 0-6-6zm2.14 6.8a2.16 2.16 0 0 1-2.29 2.41 2.5 2.5 0 0 1-2-.87l.73-.92a1.52 1.52 0 0 0 1.23.59c.66 0 1.06-.42 1.06-1.32V2.8h1.26z"/></svg>`;case vr.javascript:return j`<svg class="${this.cssClass}" aria-label="js" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path  d="M11.4 10h2.7v7.6c0 3.4-1.6 4.6-4.3 4.6-.6 0-1.5-.1-2-.3l.3-2.2c.4.2.9.3 1.4.3 1.1 0 1.9-.5 1.9-2.4V10zm5.1 9.2c.7.4 1.9.8 3 .8 1.3 0 1.9-.5 1.9-1.3s-.6-1.2-2-1.7c-2-.7-3.3-1.8-3.3-3.6 0-2.1 1.7-3.6 4.6-3.6 1.4 0 2.4.3 3.1.6l-.6 2.2c-.5-.2-1.3-.6-2.5-.6s-1.8.5-1.8 1.2c0 .8.7 1.1 2.2 1.7 2.1.8 3.1 1.9 3.1 3.6 0 2-1.6 3.7-4.9 3.7-1.4 0-2.7-.4-3.4-.7l.6-2.3z"/></svg>`;case vr.typescript:return j`<svg class="${this.cssClass}" aria-label="ts" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M15.6 11.8h-3.4V22H9.7V11.8H6.3V10h9.2v1.8zm7.7 7.1c0-.5-.2-.8-.5-1.1-.3-.3-.9-.5-1.7-.8-1.4-.4-2.5-.9-3.3-1.5-.7-.6-1.1-1.3-1.1-2.3 0-1 .4-1.8 1.3-2.4.8-.6 1.9-.9 3.2-.9 1.3 0 2.4.4 3.2 1.1.8.7 1.2 1.6 1.2 2.6h-2.3c0-.6-.2-1-.6-1.4-.4-.3-.9-.5-1.6-.5-.6 0-1.1.1-1.5.4-.4.3-.5.7-.5 1.1 0 .4.2.7.6 1 .4.3 1 .5 2 .8 1.3.4 2.3.9 3 1.5.7.6 1 1.4 1 2.4s-.4 1.9-1.2 2.4c-.8.6-1.9.9-3.2.9-1.3 0-2.5-.3-3.4-1s-1.5-1.6-1.4-2.9h2.4c0 .7.2 1.2.7 1.6.4.3 1.1.5 1.8.5s1.2-.1 1.5-.4c.2-.3.4-.7.4-1.1z"/></svg>`;case vr.scala:return j`<svg class="${this.cssClass}" aria-label="scala" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M21.6 7v4.2c-.1.1-.1.2-.2.2-.3.3-.7.5-1.1.6-.9.3-1.9.5-2.8.7-1.6.3-3.1.5-4.7.7-.8.1-1.6.2-2.4.4V9.6c.1-.1.2-.1.4-.1 1.2-.2 2.5-.4 3.8-.5 1.9-.3 3.8-.5 5.6-1.1.5-.2 1.1-.4 1.4-.9zm0 5.6v4.2l-.2.2c-.5.4-1.1.6-1.6.8-.8.2-1.6.4-2.4.5-1 .2-1.9.3-2.9.5-1.4.2-2.7.3-4.1.6v-4.2c.1-.1.2-.1.3-.1 1.7-.2 3.4-.5 5.1-.7 1.4-.2 2.9-.5 4.3-.9.6-.2 1.1-.4 1.5-.9zM10.5 25h-.1v-4.2c.1-.1.2-.1.3-.1 1.2-.2 2.3-.3 3.5-.5 2-.3 3.9-.5 5.8-1.1.6-.2 1.2-.4 1.6-.9v4.2c-.1.2-.3.3-.5.5-.6.3-1.2.5-1.9.7-1.2.3-2.5.5-3.7.7-1.3.2-2.6.4-3.9.5-.4 0-.7.1-1.1.2z"/></svg>`;case vr.php:return j`<svg class="${this.cssClass}" aria-label="php" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M12.7 19.7c-.1-.6-.4-1.1-1-1.3-.2-.1-.5-.3-.7-.4-.3-.1-.6-.2-.8-.3-.2-.1-.4 0-.6.2-.1.2 0 .4.1.5.1.2.2.3.4.5.2.3.4.5.7.8.2.3.4.5.3.9-.1.7-.4 1.4-.9 1.9-.1.1-.2.1-.2.1-.3 0-.7-.2-.9-.4-.3-.3-.2-.6.1-.8.1 0 .2-.1.2-.2.2-.2.3-.4.2-.7-.1-.1-.1-.2-.2-.3-.4-.4-.9-.8-1.4-1.2-1.3-1-1.9-2.2-2-3.6-.1-1.6.3-3.1 1.1-4.5.3-.5.7-1 1.3-1.3.4-.2.8-.3 1.2-.4 1.1-.3 2.3-.5 3.5-.3 1 .2 1.8.7 2.1 1.7.2.7.3 1.3.2 2-.1 1.4-1.2 2.6-2.5 3-.6.2-.9.1-1.2-.4-.2-.3-.5-.7-.7-1.1V14c0-.1-.1-.1-.1-.2.1.6.2 1.2.5 1.7.2.3.4.5.8.5 1.3.1 2.3-.3 3.1-1.3.8-1.1 1-2.4.8-3.8 0-.3-.1-.5-.2-.8 0-.2 0-.3.2-.4.1 0 .2 0 .2-.1 1-.2 2.1-.3 3.1-.2 1.2.1 2.3.4 3.3 1.1 1.6 1 2.6 2.5 3.1 4.3.1.3.1.5.1.8 0 .2-.1.2-.3.1-.2-.1-.3-.3-.4-.4-.1-.1-.2-.3-.3-.4-.1-.1-.2-.1-.2 0s-.1.2-.1.3c-.3 1-.7 1.9-1.4 2.6-.1.1-.2.3-.2.4 0 .4-.1.8 0 1.2.1.8.2 1.7.3 2.5.1.5-.1.7-.5.9-.3.1-.6.2-1 .2h-1.6c0-.6 0-1.2-.5-1.5.1-.4.2-.8.3-1.3.1-.4 0-.7-.2-1-.2-.3-.5-.3-.8-.2-.8.5-1.6.5-2.5.2-.4-.1-.7-.1-.9.3-.2.4-.3.8-.3 1.2 0 .5.1 1.1.2 1.6 0 .3 0 .4-.3.5-.7.2-1.4.2-2 .1h-.1c0-.6 0-1.2-.7-1.5.4-.4.4-1.1.3-1.7zm-4.1-2.3c.1-.1.2-.2.2-.4.1-.3-.2-.8-.5-.9-.2-.1-.3 0-.4.1-.3.3-.5.6-.8.9 0 .1-.1.1-.1.2-.1.2 0 .4.2.4.1 0 .3 0 .4.1.4 0 .7-.1 1-.4zm0-3.3c0-.2-.2-.4-.4-.4s-.5.2-.4.5c0 .2.2.4.5.4.1-.1.3-.3.3-.5z"/></svg>`;case vr.vue:return j`<svg class="${this.cssClass}" aria-label="vue" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 1000"><path d="M600 495.9l159.1-275.4h-84.4L600 349.7l-74.6-129.2h-84.5z"/><path d="M793.7 220.5L600 555.9 406.3 220.5H277l323 559 323-559z"/></svg>`;case vr.gherkin:return j`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M16.129,2a12.348,12.348,0,0,0-2.35,24.465V30c7.371-1.114,13.9-6.982,14.384-14.684a12.8,12.8,0,0,0-5.9-11.667c-.223-.132-.449-.262-.682-.377s-.481-.231-.729-.33c-.079-.033-.156-.063-.235-.094-.216-.08-.435-.17-.658-.236A12.188,12.188,0,0,0,16.129,2Z" style="fill:var(--mut-file-gherkin-color)"/><path d="M18.68,6.563a1.345,1.345,0,0,0-1.178.472,5.493,5.493,0,0,0-.518.9,2.9,2.9,0,0,0,.377,3.023A3.317,3.317,0,0,0,19.763,9,2.388,2.388,0,0,0,20,8,1.411,1.411,0,0,0,18.68,6.563Zm-5.488.071A1.441,1.441,0,0,0,11.85,8,2.388,2.388,0,0,0,12.085,9a3.427,3.427,0,0,0,2.473,1.96,3.141,3.141,0,0,0-.212-3.85,1.322,1.322,0,0,0-1.154-.472Zm-3.7,3.637a1.3,1.3,0,0,0-.73,2.338,5.663,5.663,0,0,0,.895.543,3.386,3.386,0,0,0,3.179-.307,3.492,3.492,0,0,0-2.049-2.338,2.69,2.69,0,0,0-1.06-.236,1.369,1.369,0,0,0-.236,0Zm11.611,4.582a3.44,3.44,0,0,0-1.955.567A3.492,3.492,0,0,0,21.2,17.758a2.69,2.69,0,0,0,1.06.236,1.329,1.329,0,0,0,.966-2.362,5.47,5.47,0,0,0-.895-.52,3.247,3.247,0,0,0-1.225-.26Zm-10.292.071a3.247,3.247,0,0,0-1.225.26,2.575,2.575,0,0,0-.895.543A1.34,1.34,0,0,0,9.73,18.065a2.426,2.426,0,0,0,1.06-.236,3.185,3.185,0,0,0,1.955-2.338,3.366,3.366,0,0,0-1.931-.567Zm3.815,2.314a3.317,3.317,0,0,0-2.4,1.96,2.286,2.286,0,0,0-.236.968,1.4,1.4,0,0,0,2.426.992,5.492,5.492,0,0,0,.518-.9,3.109,3.109,0,0,0-.306-3.023Zm2.8.071a3.141,3.141,0,0,0,.212,3.85,1.47,1.47,0,0,0,2.5-.9,2.388,2.388,0,0,0-.236-.992,3.427,3.427,0,0,0-2.473-1.96Z" style="fill:#fff"/></svg>`}}};hn.styles=[i(dn.Z)],un([te({attribute:"file-name"})],hn.prototype,"fileName",void 0),un([te({attribute:"file",type:Boolean})],hn.prototype,"isFile",void 0),hn=un([re("mte-file-icon")],hn);var bn=r(5465),pn=function(e,t,r,n){var o,i=arguments.length,s=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,r,s):o(t,r))||s);return i>3&&s&&Object.defineProperty(t,r,s),s};let gn=class extends Q{render(){return z`<span class="tooltip" title="${this.title}"><slot></slot></span>`}};gn.styles=[i(bn.Z)],pn([te({attribute:!0})],gn.prototype,"title",void 0),gn=pn([re("mte-tooltip")],gn)})()})();</script>
    </head>
    <body>
        <mutation-test-report-app title-postfix="Stryker.NET Report">
            Your browser doesn't support <a href="https://caniuse.com/#search=custom%20elements">custom elements</a>.
            Please use a latest version of an evergreen browser (Firefox, Chrome, Safari, Opera, etc).
        </mutation-test-report-app>
        <script>
            const app = document.querySelector('mutation-test-report-app');

            app.report = {"schemaVersion":"1","thresholds":{"high":80,"low":60},"projectRoot":"C:\\OSS\\ModularMonolith\\Repository\\modular-monolith-with-ddd\\src\\Modules\\Meetings\\Domain","files":{"MeetingCommentingConfigurations\\Events\\MeetingCommentingConfigurationCreatedDomainEvent.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingCommentingConfigurations.Events\r\n{\r\n    public class MeetingCommentingConfigurationCreatedDomainEvent : DomainEventBase\r\n    {\r\n        public MeetingId MeetingId { get; }\r\n\r\n        public bool IsEnabled { get; }\r\n\r\n        public MeetingCommentingConfigurationCreatedDomainEvent(MeetingId meetingId, bool isEnabled)\r\n        {\r\n            MeetingId = meetingId;\r\n            IsEnabled = isEnabled;\r\n        }\r\n    }\r\n}","mutants":[{"id":"0","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":13,"column":9},"end":{"line":16,"column":10}},"status":"Killed","static":false}]},"MeetingCommentingConfigurations\\Events\\MeetingCommentingDisabledDomainEvent.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingCommentingConfigurations.Events\r\n{\r\n    public class MeetingCommentingDisabledDomainEvent : DomainEventBase\r\n    {\r\n        public MeetingId MeetingId { get; }\r\n\r\n        public MeetingCommentingDisabledDomainEvent(MeetingId meetingId)\r\n        {\r\n            MeetingId = meetingId;\r\n        }\r\n    }\r\n}","mutants":[{"id":"1","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":11,"column":9},"end":{"line":13,"column":10}},"status":"Killed","static":false}]},"MeetingCommentingConfigurations\\Events\\MeetingCommentingEnabledDomainEvent.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingCommentingConfigurations.Events\r\n{\r\n    public class MeetingCommentingEnabledDomainEvent : DomainEventBase\r\n    {\r\n        public MeetingId MeetingId { get; }\r\n\r\n        public MeetingCommentingEnabledDomainEvent(MeetingId meetingId)\r\n        {\r\n            MeetingId = meetingId;\r\n        }\r\n    }\r\n}","mutants":[{"id":"2","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":11,"column":9},"end":{"line":13,"column":10}},"status":"Killed","static":false}]},"MeetingCommentingConfigurations\\IMeetingCommentingConfigurationRepository.cs":{"language":"cs","source":"using System.Threading.Tasks;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingCommentingConfigurations\r\n{\r\n    public interface IMeetingCommentingConfigurationRepository\r\n    {\r\n        Task AddAsync(MeetingCommentingConfiguration meetingCommentingConfiguration);\r\n\r\n        Task\u003CMeetingCommentingConfiguration\u003E GetByMeetingIdAsync(MeetingId meetingId);\r\n    }\r\n}","mutants":[]},"MeetingCommentingConfigurations\\MeetingCommentingConfiguration.cs":{"language":"cs","source":"using System;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingCommentingConfigurations.Events;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingCommentingConfigurations.Rules;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingCommentingConfigurations\r\n{\r\n    public class MeetingCommentingConfiguration : Entity, IAggregateRoot\r\n    {\r\n        public MeetingCommentingConfigurationId Id { get; }\r\n\r\n        private MeetingId _meetingId;\r\n\r\n        private bool _isCommentingEnabled;\r\n\r\n        private MeetingCommentingConfiguration(MeetingId meetingId)\r\n        {\r\n            this.Id = new MeetingCommentingConfigurationId(Guid.NewGuid());\r\n            this._meetingId = meetingId;\r\n            this._isCommentingEnabled = true;\r\n\r\n            this.AddDomainEvent(new MeetingCommentingConfigurationCreatedDomainEvent(this._meetingId, this._isCommentingEnabled));\r\n        }\r\n\r\n        private MeetingCommentingConfiguration()\r\n        {\r\n            // Only for EF.\r\n        }\r\n\r\n        public void EnableCommenting(MemberId enablingMemberId, MeetingGroup meetingGroup)\r\n        {\r\n            CheckRule(new MeetingCommentingCanBeEnabledOnlyByGroupOrganizerRule(enablingMemberId, meetingGroup));\r\n\r\n            if (!this._isCommentingEnabled)\r\n            {\r\n                this._isCommentingEnabled = true;\r\n                AddDomainEvent(new MeetingCommentingEnabledDomainEvent(this._meetingId));\r\n            }\r\n        }\r\n\r\n        public void DisableCommenting(MemberId disablingMemberId, MeetingGroup meetingGroup)\r\n        {\r\n            CheckRule(new MeetingCommentingCanBeDisabledOnlyByGroupOrganizerRule(disablingMemberId, meetingGroup));\r\n\r\n            if (this._isCommentingEnabled)\r\n            {\r\n                this._isCommentingEnabled = false;\r\n                AddDomainEvent(new MeetingCommentingDisabledDomainEvent(this._meetingId));\r\n            }\r\n        }\r\n\r\n        public bool GetIsCommentingEnabled() =\u003E _isCommentingEnabled;\r\n\r\n        internal static MeetingCommentingConfiguration Create(MeetingId meetingId)\r\n            =\u003E new MeetingCommentingConfiguration(meetingId);\r\n    }\r\n}","mutants":[{"id":"3","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":20,"column":9},"end":{"line":26,"column":10}},"status":"Killed","static":false},{"id":"4","mutatorName":"Boolean mutation","replacement":"false","location":{"start":{"line":23,"column":41},"end":{"line":23,"column":45}},"status":"Killed","static":false},{"id":"5","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":25,"column":13},"end":{"line":25,"column":131}},"status":"Killed","static":false},{"id":"6","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":34,"column":9},"end":{"line":42,"column":10}},"status":"Killed","static":false},{"id":"7","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":35,"column":13},"end":{"line":35,"column":114}},"status":"Killed","static":false},{"id":"8","mutatorName":"LogicalNotExpression to un-LogicalNotExpression mutation","replacement":"this._isCommentingEnabled","location":{"start":{"line":37,"column":17},"end":{"line":37,"column":43}},"status":"Killed","static":false},{"id":"9","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":38,"column":13},"end":{"line":41,"column":14}},"status":"Killed","static":false},{"id":"10","mutatorName":"Boolean mutation","replacement":"false","location":{"start":{"line":39,"column":45},"end":{"line":39,"column":49}},"status":"Survived","static":false},{"id":"11","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":40,"column":17},"end":{"line":40,"column":90}},"status":"Killed","static":false},{"id":"12","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":45,"column":9},"end":{"line":53,"column":10}},"status":"Killed","static":false},{"id":"13","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":46,"column":13},"end":{"line":46,"column":116}},"status":"Killed","static":false},{"id":"14","mutatorName":"Negate expression","replacement":"!(this._isCommentingEnabled)","location":{"start":{"line":48,"column":17},"end":{"line":48,"column":42}},"status":"Killed","static":false},{"id":"15","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":49,"column":13},"end":{"line":52,"column":14}},"status":"Killed","static":false},{"id":"16","mutatorName":"Boolean mutation","replacement":"true","location":{"start":{"line":50,"column":45},"end":{"line":50,"column":50}},"status":"Killed","static":false},{"id":"17","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":51,"column":17},"end":{"line":51,"column":91}},"status":"Killed","static":false}]},"MeetingCommentingConfigurations\\MeetingCommentingConfigurationId.cs":{"language":"cs","source":"using System;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingCommentingConfigurations\r\n{\r\n    public class MeetingCommentingConfigurationId : TypedIdValueBase\r\n    {\r\n        public MeetingCommentingConfigurationId(Guid value)\r\n            : base(value)\r\n        {\r\n        }\r\n    }\r\n}","mutants":[]},"MeetingCommentingConfigurations\\Rules\\MeetingCommentingCanBeDisabledOnlyByGroupOrganizerRule.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingCommentingConfigurations.Rules\r\n{\r\n    public class MeetingCommentingCanBeDisabledOnlyByGroupOrganizerRule : IBusinessRule\r\n    {\r\n        private readonly MeetingGroup _meetingGroup;\r\n        private readonly MemberId _disablingMemberId;\r\n\r\n        public MeetingCommentingCanBeDisabledOnlyByGroupOrganizerRule(MemberId disablingMemberId, MeetingGroup meetingGroup)\r\n        {\r\n            _meetingGroup = meetingGroup;\r\n            _disablingMemberId = disablingMemberId;\r\n        }\r\n\r\n        public bool IsBroken() =\u003E !_meetingGroup.IsOrganizer(_disablingMemberId);\r\n\r\n        public string Message =\u003E \u0022Commenting for meeting can be disabled only by group organizer\u0022;\r\n    }\r\n}","mutants":[{"id":"18","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":13,"column":9},"end":{"line":16,"column":10}},"status":"Killed","static":false},{"id":"19","mutatorName":"LogicalNotExpression to un-LogicalNotExpression mutation","replacement":"_meetingGroup.IsOrganizer(_disablingMemberId)","location":{"start":{"line":18,"column":35},"end":{"line":18,"column":81}},"status":"Killed","static":false},{"id":"20","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":20,"column":34},"end":{"line":20,"column":98}},"status":"Survived","static":false}]},"MeetingCommentingConfigurations\\Rules\\MeetingCommentingCanBeEnabledOnlyByGroupOrganizerRule.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingCommentingConfigurations.Rules\r\n{\r\n    public class MeetingCommentingCanBeEnabledOnlyByGroupOrganizerRule : IBusinessRule\r\n    {\r\n        private readonly MeetingGroup _meetingGroup;\r\n        private readonly MemberId _enablingMemberId;\r\n\r\n        public MeetingCommentingCanBeEnabledOnlyByGroupOrganizerRule(MemberId enablingMemberId, MeetingGroup meetingGroup)\r\n        {\r\n            _meetingGroup = meetingGroup;\r\n            _enablingMemberId = enablingMemberId;\r\n        }\r\n\r\n        public bool IsBroken() =\u003E !_meetingGroup.IsOrganizer(_enablingMemberId);\r\n\r\n        public string Message =\u003E \u0022Commenting for meeting can be enabled only by group organizer\u0022;\r\n    }\r\n}","mutants":[{"id":"21","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":13,"column":9},"end":{"line":16,"column":10}},"status":"Killed","static":false},{"id":"22","mutatorName":"LogicalNotExpression to un-LogicalNotExpression mutation","replacement":"_meetingGroup.IsOrganizer(_enablingMemberId)","location":{"start":{"line":18,"column":35},"end":{"line":18,"column":80}},"status":"Killed","static":false},{"id":"23","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":20,"column":34},"end":{"line":20,"column":97}},"status":"Survived","static":false}]},"MeetingComments\\Events\\MeetingCommentAddedDomainEvent.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Comments.Events\r\n{\r\n    public class MeetingCommentAddedDomainEvent : DomainEventBase\r\n    {\r\n        public MeetingCommentId MeetingCommentId { get; }\r\n\r\n        public MeetingId MeetingId { get; }\r\n\r\n        public string Comment { get; }\r\n\r\n        public MeetingCommentAddedDomainEvent(MeetingCommentId meetingCommentId, MeetingId meetingId, string comment)\r\n        {\r\n            MeetingCommentId = meetingCommentId;\r\n            MeetingId = meetingId;\r\n            Comment = comment;\r\n        }\r\n    }\r\n}","mutants":[{"id":"24","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":15,"column":9},"end":{"line":19,"column":10}},"status":"Killed","static":false}]},"MeetingComments\\Events\\MeetingCommentEditedDomainEvent.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Comments.Events\r\n{\r\n    public class MeetingCommentEditedDomainEvent : DomainEventBase\r\n    {\r\n        public MeetingCommentId MeetingCommentId { get; }\r\n\r\n        public string EditedComment { get; }\r\n\r\n        public MeetingCommentEditedDomainEvent(MeetingCommentId meetingCommentId, string editedComment)\r\n        {\r\n            MeetingCommentId = meetingCommentId;\r\n            EditedComment = editedComment;\r\n        }\r\n    }\r\n}","mutants":[{"id":"25","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":12,"column":9},"end":{"line":15,"column":10}},"status":"Killed","static":false}]},"MeetingComments\\Events\\MeetingCommentRemovedDomainEvent.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Comments.Events\r\n{\r\n    public class MeetingCommentRemovedDomainEvent : DomainEventBase\r\n    {\r\n        public MeetingCommentId MeetingCommentId { get; }\r\n\r\n        public MeetingCommentRemovedDomainEvent(MeetingCommentId meetingCommentId)\r\n        {\r\n            MeetingCommentId = meetingCommentId;\r\n        }\r\n    }\r\n}","mutants":[{"id":"26","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":10,"column":9},"end":{"line":12,"column":10}},"status":"Killed","static":false}]},"MeetingComments\\Events\\ReplyToMeetingCommentAddedDomainEvent.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Comments.Events\r\n{\r\n    public class ReplyToMeetingCommentAddedDomainEvent : DomainEventBase\r\n    {\r\n        public MeetingCommentId MeetingCommentId { get; }\r\n\r\n        public MeetingCommentId InReplyToCommentId { get; }\r\n\r\n        public string Reply { get; }\r\n\r\n        public ReplyToMeetingCommentAddedDomainEvent(MeetingCommentId meetingCommentId, MeetingCommentId inReplyToCommentId, string reply)\r\n        {\r\n            MeetingCommentId = meetingCommentId;\r\n            InReplyToCommentId = inReplyToCommentId;\r\n            Reply = reply;\r\n        }\r\n    }\r\n}","mutants":[{"id":"27","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":14,"column":9},"end":{"line":18,"column":10}},"status":"Killed","static":false}]},"MeetingComments\\IMeetingCommentRepository.cs":{"language":"cs","source":"using System.Threading.Tasks;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Comments;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingComments\r\n{\r\n    public interface IMeetingCommentRepository\r\n    {\r\n        Task AddAsync(MeetingComment meetingComment);\r\n\r\n        Task\u003CMeetingComment\u003E GetByIdAsync(MeetingCommentId meetingCommentId);\r\n    }\r\n}","mutants":[]},"MeetingComments\\MeetingComment.cs":{"language":"cs","source":"using System;\r\nusing System.Collections.Generic;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Comments;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Comments.Events;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingCommentingConfigurations;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingComments.Rules;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingMemberCommentLikes;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.SharedKernel;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingComments\r\n{\r\n    public class MeetingComment : Entity, IAggregateRoot\r\n    {\r\n        public MeetingCommentId Id { get; }\r\n\r\n        private MeetingId _meetingId;\r\n\r\n        private MemberId _authorId;\r\n\r\n        private MeetingCommentId? _inReplyToCommentId;\r\n\r\n        private string _comment;\r\n\r\n        private DateTime _createDate;\r\n\r\n        private DateTime? _editDate;\r\n\r\n        private bool _isRemoved;\r\n\r\n        private string _removedByReason;\r\n\r\n        private MeetingComment(\r\n            MeetingId meetingId,\r\n            MemberId authorId,\r\n            string comment,\r\n            MeetingCommentId? inReplyToCommentId,\r\n            MeetingCommentingConfiguration meetingCommentingConfiguration,\r\n            MeetingGroup meetingGroup)\r\n        {\r\n            this.CheckRule(new CommentTextMustBeProvidedRule(comment));\r\n            this.CheckRule(new CommentCanBeCreatedOnlyIfCommentingForMeetingEnabledRule(meetingCommentingConfiguration));\r\n            this.CheckRule(new CommentCanBeAddedOnlyByMeetingGroupMemberRule(authorId, meetingGroup));\r\n\r\n            this.Id = new MeetingCommentId(Guid.NewGuid());\r\n            _meetingId = meetingId;\r\n            _authorId = authorId;\r\n            _comment = comment;\r\n\r\n            _inReplyToCommentId = inReplyToCommentId;\r\n\r\n            _createDate = SystemClock.Now;\r\n            _editDate = null;\r\n\r\n            _isRemoved = false;\r\n            _removedByReason = null;\r\n\r\n            if (inReplyToCommentId == null)\r\n            {\r\n                this.AddDomainEvent(new MeetingCommentAddedDomainEvent(this.Id, _meetingId, comment));\r\n            }\r\n            else\r\n            {\r\n                this.AddDomainEvent(new ReplyToMeetingCommentAddedDomainEvent(this.Id, inReplyToCommentId, comment));\r\n            }\r\n        }\r\n\r\n        private MeetingComment()\r\n        {\r\n            // Only for EF.\r\n        }\r\n\r\n        public void Edit(MemberId editorId, string editedComment, MeetingCommentingConfiguration meetingCommentingConfiguration)\r\n        {\r\n            this.CheckRule(new CommentTextMustBeProvidedRule(editedComment));\r\n            this.CheckRule(new MeetingCommentCanBeEditedOnlyByAuthorRule(this._authorId, editorId));\r\n            this.CheckRule(new CommentCanBeEditedOnlyIfCommentingForMeetingEnabledRule(meetingCommentingConfiguration));\r\n\r\n            _comment = editedComment;\r\n            _editDate = SystemClock.Now;\r\n\r\n            this.AddDomainEvent(new MeetingCommentEditedDomainEvent(this.Id, editedComment));\r\n        }\r\n\r\n        public void Remove(MemberId removingMemberId, MeetingGroup meetingGroup, string reason = null)\r\n        {\r\n            this.CheckRule(new MeetingCommentCanBeRemovedOnlyByAuthorOrGroupOrganizerRule(meetingGroup, this._authorId, removingMemberId));\r\n            this.CheckRule(new RemovingReasonCanBeProvidedOnlyByGroupOrganizerRule(meetingGroup, removingMemberId, reason));\r\n\r\n            _isRemoved = true;\r\n            _removedByReason = reason ?? string.Empty;\r\n\r\n            this.AddDomainEvent(new MeetingCommentRemovedDomainEvent(this.Id));\r\n        }\r\n\r\n        public MeetingComment Reply(MemberId replierId, string reply, MeetingGroup meetingGroup, MeetingCommentingConfiguration meetingCommentingConfiguration)\r\n            =\u003E new MeetingComment(\r\n                _meetingId,\r\n                replierId,\r\n                reply,\r\n                this.Id,\r\n                meetingCommentingConfiguration,\r\n                meetingGroup);\r\n\r\n        public MeetingMemberCommentLike Like(\r\n            MemberId likerId,\r\n            MeetingGroupMemberData likerMeetingGroupMember,\r\n            int meetingMemberCommentLikesCount)\r\n        {\r\n            this.CheckRule(new CommentCanBeLikedOnlyByMeetingGroupMemberRule(likerMeetingGroupMember));\r\n            this.CheckRule(new CommentCannotBeLikedByTheSameMemberMoreThanOnceRule(meetingMemberCommentLikesCount));\r\n\r\n            return MeetingMemberCommentLike.Create(this.Id, likerId);\r\n        }\r\n\r\n        public MeetingId GetMeetingId() =\u003E this._meetingId;\r\n\r\n        internal static MeetingComment Create(\r\n            MeetingId meetingId,\r\n            MemberId authorId,\r\n            string comment,\r\n            MeetingGroup meetingGroup,\r\n            MeetingCommentingConfiguration meetingCommentingConfiguration)\r\n            =\u003E new MeetingComment(\r\n                meetingId,\r\n                authorId,\r\n                comment,\r\n                inReplyToCommentId: null,\r\n                meetingCommentingConfiguration,\r\n                meetingGroup);\r\n    }\r\n}","mutants":[{"id":"28","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":43,"column":9},"end":{"line":69,"column":10}},"status":"Killed","static":false},{"id":"29","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":44,"column":13},"end":{"line":44,"column":72}},"status":"Killed","static":false},{"id":"30","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":45,"column":13},"end":{"line":45,"column":122}},"status":"Killed","static":false},{"id":"31","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":46,"column":13},"end":{"line":46,"column":103}},"status":"Killed","static":false},{"id":"32","mutatorName":"Boolean mutation","replacement":"true","location":{"start":{"line":58,"column":26},"end":{"line":58,"column":31}},"status":"Survived","static":false},{"id":"33","mutatorName":"Equality mutation","replacement":"inReplyToCommentId != null","location":{"start":{"line":61,"column":17},"end":{"line":61,"column":43}},"status":"Killed","static":false},{"id":"34","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":62,"column":13},"end":{"line":64,"column":14}},"status":"Killed","static":false},{"id":"35","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":63,"column":17},"end":{"line":63,"column":103}},"status":"Killed","static":false},{"id":"36","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":66,"column":13},"end":{"line":68,"column":14}},"status":"Killed","static":false},{"id":"37","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":67,"column":17},"end":{"line":67,"column":118}},"status":"Killed","static":false},{"id":"38","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":77,"column":9},"end":{"line":86,"column":10}},"status":"Killed","static":false},{"id":"39","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":78,"column":13},"end":{"line":78,"column":78}},"status":"Killed","static":false},{"id":"40","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":79,"column":13},"end":{"line":79,"column":101}},"status":"Killed","static":false},{"id":"41","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":80,"column":13},"end":{"line":80,"column":121}},"status":"Killed","static":false},{"id":"42","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":85,"column":13},"end":{"line":85,"column":94}},"status":"Killed","static":false},{"id":"43","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":89,"column":9},"end":{"line":97,"column":10}},"status":"Killed","static":false},{"id":"44","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":90,"column":13},"end":{"line":90,"column":140}},"status":"Killed","static":false},{"id":"45","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":91,"column":13},"end":{"line":91,"column":125}},"status":"Killed","static":false},{"id":"46","mutatorName":"Boolean mutation","replacement":"false","location":{"start":{"line":93,"column":26},"end":{"line":93,"column":30}},"status":"Survived","static":false},{"id":"47","mutatorName":"String mutation","replacement":"\u0022Stryker was here!\u0022","location":{"start":{"line":94,"column":42},"end":{"line":94,"column":54}},"status":"Survived","static":false},{"id":"48","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":96,"column":13},"end":{"line":96,"column":80}},"status":"Killed","static":false},{"id":"49","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":112,"column":9},"end":{"line":117,"column":10}},"status":"Killed","static":false},{"id":"50","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":113,"column":13},"end":{"line":113,"column":104}},"status":"Killed","static":false},{"id":"51","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":114,"column":13},"end":{"line":114,"column":117}},"status":"Killed","static":false}]},"MeetingComments\\MeetingCommentId.cs":{"language":"cs","source":"using System;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Comments\r\n{\r\n    public class MeetingCommentId : TypedIdValueBase\r\n    {\r\n        public MeetingCommentId(Guid value)\r\n            : base(value)\r\n        {\r\n        }\r\n    }\r\n}","mutants":[]},"MeetingComments\\Rules\\CommentCanBeAddedOnlyByMeetingGroupMemberRule.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingComments.Rules\r\n{\r\n    public class CommentCanBeAddedOnlyByMeetingGroupMemberRule : IBusinessRule\r\n    {\r\n        private readonly MemberId _authorId;\r\n        private readonly MeetingGroup _meetingGroup;\r\n\r\n        public CommentCanBeAddedOnlyByMeetingGroupMemberRule(MemberId authorId, MeetingGroup meetingGroup)\r\n        {\r\n            _authorId = authorId;\r\n            _meetingGroup = meetingGroup;\r\n        }\r\n\r\n        public bool IsBroken() =\u003E !_meetingGroup.IsMemberOfGroup(_authorId);\r\n\r\n        public string Message =\u003E \u0022Only meeting attendee can add comments\u0022;\r\n    }\r\n}","mutants":[{"id":"52","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":13,"column":9},"end":{"line":16,"column":10}},"status":"Killed","static":false},{"id":"53","mutatorName":"LogicalNotExpression to un-LogicalNotExpression mutation","replacement":"_meetingGroup.IsMemberOfGroup(_authorId)","location":{"start":{"line":18,"column":35},"end":{"line":18,"column":76}},"status":"Killed","static":false},{"id":"54","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":20,"column":34},"end":{"line":20,"column":74}},"status":"Survived","static":false}]},"MeetingComments\\Rules\\CommentCanBeCreatedOnlyIfCommentingForMeetingEnabledRule.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingCommentingConfigurations;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingComments.Rules\r\n{\r\n    public class CommentCanBeCreatedOnlyIfCommentingForMeetingEnabledRule : IBusinessRule\r\n    {\r\n        private readonly MeetingCommentingConfiguration _meetingCommentingConfiguration;\r\n\r\n        public CommentCanBeCreatedOnlyIfCommentingForMeetingEnabledRule(MeetingCommentingConfiguration meetingCommentingConfiguration)\r\n        {\r\n            _meetingCommentingConfiguration = meetingCommentingConfiguration;\r\n        }\r\n\r\n        public bool IsBroken() =\u003E !_meetingCommentingConfiguration.GetIsCommentingEnabled();\r\n\r\n        public string Message =\u003E \u0022Commenting for meeting is disabled.\u0022;\r\n    }\r\n}","mutants":[{"id":"55","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":11,"column":9},"end":{"line":13,"column":10}},"status":"Killed","static":false},{"id":"56","mutatorName":"LogicalNotExpression to un-LogicalNotExpression mutation","replacement":"_meetingCommentingConfiguration.GetIsCommentingEnabled()","location":{"start":{"line":15,"column":35},"end":{"line":15,"column":92}},"status":"Killed","static":false},{"id":"57","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":17,"column":34},"end":{"line":17,"column":71}},"status":"Survived","static":false}]},"MeetingComments\\Rules\\CommentCanBeEditedOnlyIfCommentingForMeetingEnabledRule.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingCommentingConfigurations;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingComments.Rules\r\n{\r\n    public class CommentCanBeEditedOnlyIfCommentingForMeetingEnabledRule : IBusinessRule\r\n    {\r\n        private readonly MeetingCommentingConfiguration _meetingCommentingConfiguration;\r\n\r\n        public CommentCanBeEditedOnlyIfCommentingForMeetingEnabledRule(MeetingCommentingConfiguration meetingCommentingConfiguration)\r\n        {\r\n            _meetingCommentingConfiguration = meetingCommentingConfiguration;\r\n        }\r\n\r\n        public bool IsBroken() =\u003E !_meetingCommentingConfiguration.GetIsCommentingEnabled();\r\n\r\n        public string Message =\u003E \u0022Commenting for meeting is disabled.\u0022;\r\n    }\r\n}","mutants":[{"id":"58","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":11,"column":9},"end":{"line":13,"column":10}},"status":"Killed","static":false},{"id":"59","mutatorName":"LogicalNotExpression to un-LogicalNotExpression mutation","replacement":"_meetingCommentingConfiguration.GetIsCommentingEnabled()","location":{"start":{"line":15,"column":35},"end":{"line":15,"column":92}},"status":"Killed","static":false},{"id":"60","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":17,"column":34},"end":{"line":17,"column":71}},"status":"Survived","static":false}]},"MeetingComments\\Rules\\CommentCanBeLikedOnlyByMeetingGroupMemberRule.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingComments.Rules\r\n{\r\n    public class CommentCanBeLikedOnlyByMeetingGroupMemberRule : IBusinessRule\r\n    {\r\n        private readonly MeetingGroupMemberData _likerMeetingGroupMember;\r\n\r\n        public CommentCanBeLikedOnlyByMeetingGroupMemberRule(MeetingGroupMemberData? likerMeetingGroupMember)\r\n        {\r\n            _likerMeetingGroupMember = likerMeetingGroupMember;\r\n        }\r\n\r\n        public bool IsBroken() =\u003E _likerMeetingGroupMember == null;\r\n\r\n        public string Message =\u003E \u0022Comment can be liked only by meeting group member.\u0022;\r\n    }\r\n}","mutants":[{"id":"61","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":11,"column":9},"end":{"line":13,"column":10}},"status":"Killed","static":false},{"id":"62","mutatorName":"Equality mutation","replacement":"_likerMeetingGroupMember != null","location":{"start":{"line":15,"column":35},"end":{"line":15,"column":67}},"status":"Killed","static":false},{"id":"63","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":17,"column":34},"end":{"line":17,"column":86}},"status":"Survived","static":false}]},"MeetingComments\\Rules\\CommentCannotBeLikedByTheSameMemberMoreThanOnceRule.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingComments.Rules\r\n{\r\n    public class CommentCannotBeLikedByTheSameMemberMoreThanOnceRule : IBusinessRule\r\n    {\r\n        private readonly int _memberCommentLikesCount;\r\n\r\n        public CommentCannotBeLikedByTheSameMemberMoreThanOnceRule(int memberCommentLikesCount)\r\n        {\r\n            _memberCommentLikesCount = memberCommentLikesCount;\r\n        }\r\n\r\n        public bool IsBroken() =\u003E _memberCommentLikesCount \u003E 0;\r\n\r\n        public string Message =\u003E \u0022Member cannot like one comment more than once.\u0022;\r\n    }\r\n}","mutants":[{"id":"64","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":10,"column":9},"end":{"line":12,"column":10}},"status":"Killed","static":false},{"id":"65","mutatorName":"Equality mutation","replacement":"_memberCommentLikesCount \u003C 0","location":{"start":{"line":14,"column":35},"end":{"line":14,"column":63}},"status":"Killed","static":false},{"id":"66","mutatorName":"Equality mutation","replacement":"_memberCommentLikesCount \u003E= 0","location":{"start":{"line":14,"column":35},"end":{"line":14,"column":63}},"status":"Killed","static":false},{"id":"67","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":16,"column":34},"end":{"line":16,"column":82}},"status":"Survived","static":false}]},"MeetingComments\\Rules\\CommentTextMustBeProvidedRule.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingComments.Rules\r\n{\r\n    public class CommentTextMustBeProvidedRule : IBusinessRule\r\n    {\r\n        private readonly string _comment;\r\n\r\n        public CommentTextMustBeProvidedRule(string comment)\r\n        {\r\n            _comment = comment;\r\n        }\r\n\r\n        public bool IsBroken() =\u003E string.IsNullOrEmpty(_comment);\r\n\r\n        public string Message =\u003E \u0022Comment text must be provided.\u0022;\r\n    }\r\n}","mutants":[{"id":"68","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":10,"column":9},"end":{"line":12,"column":10}},"status":"Killed","static":false},{"id":"69","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":16,"column":34},"end":{"line":16,"column":66}},"status":"Survived","static":false}]},"MeetingComments\\Rules\\MeetingCommentCanBeEditedOnlyByAuthorRule.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingComments.Rules\r\n{\r\n    public class MeetingCommentCanBeEditedOnlyByAuthorRule : IBusinessRule\r\n    {\r\n        private readonly MemberId _authorId;\r\n        private readonly MemberId _editorId;\r\n\r\n        public MeetingCommentCanBeEditedOnlyByAuthorRule(MemberId authorId, MemberId editorId)\r\n        {\r\n            _authorId = authorId;\r\n            _editorId = editorId;\r\n        }\r\n\r\n        public bool IsBroken() =\u003E _editorId != _authorId;\r\n\r\n        public string Message =\u003E \u0022Only the author of a comment can edit it.\u0022;\r\n    }\r\n}","mutants":[{"id":"70","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":12,"column":9},"end":{"line":15,"column":10}},"status":"Killed","static":false},{"id":"71","mutatorName":"Equality mutation","replacement":"_editorId == _authorId","location":{"start":{"line":17,"column":35},"end":{"line":17,"column":57}},"status":"Killed","static":false},{"id":"72","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":19,"column":34},"end":{"line":19,"column":77}},"status":"Survived","static":false}]},"MeetingComments\\Rules\\MeetingCommentCanBeRemovedOnlyByAuthorOrGroupOrganizerRule.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingComments.Rules\r\n{\r\n    public class MeetingCommentCanBeRemovedOnlyByAuthorOrGroupOrganizerRule : IBusinessRule\r\n    {\r\n        private readonly MeetingGroup _meetingGroup;\r\n        private readonly MemberId _authorId;\r\n        private readonly MemberId _removingMemberId;\r\n\r\n        public MeetingCommentCanBeRemovedOnlyByAuthorOrGroupOrganizerRule(MeetingGroup meetingGroup, MemberId authorId, MemberId removingMemberId)\r\n        {\r\n            _meetingGroup = meetingGroup;\r\n            _authorId = authorId;\r\n            _removingMemberId = removingMemberId;\r\n        }\r\n\r\n        public bool IsBroken() =\u003E _removingMemberId != _authorId \u0026\u0026 !_meetingGroup.IsOrganizer(_removingMemberId);\r\n\r\n        public string Message =\u003E \u0022Only author of comment or group organizer can remove meeting comment.\u0022;\r\n    }\r\n}","mutants":[{"id":"73","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":14,"column":9},"end":{"line":18,"column":10}},"status":"Killed","static":false},{"id":"74","mutatorName":"Logical mutation","replacement":"_removingMemberId != _authorId || !_meetingGroup.IsOrganizer(_removingMemberId)","location":{"start":{"line":20,"column":35},"end":{"line":20,"column":114}},"status":"Killed","static":false},{"id":"75","mutatorName":"Equality mutation","replacement":"_removingMemberId == _authorId ","location":{"start":{"line":20,"column":35},"end":{"line":20,"column":65}},"status":"Killed","static":false},{"id":"76","mutatorName":"LogicalNotExpression to un-LogicalNotExpression mutation","replacement":"_meetingGroup.IsOrganizer(_removingMemberId)","location":{"start":{"line":20,"column":69},"end":{"line":20,"column":114}},"status":"Killed","static":false},{"id":"77","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":22,"column":34},"end":{"line":22,"column":105}},"status":"Survived","static":false}]},"MeetingComments\\Rules\\RemovingReasonCanBeProvidedOnlyByGroupOrganizerRule.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingComments.Rules\r\n{\r\n    public class RemovingReasonCanBeProvidedOnlyByGroupOrganizerRule : IBusinessRule\r\n    {\r\n        private readonly MeetingGroup _meetingGroup;\r\n        private readonly MemberId _removingMemberId;\r\n        private readonly string _removingReason;\r\n\r\n        public RemovingReasonCanBeProvidedOnlyByGroupOrganizerRule(MeetingGroup meetingGroup, MemberId removingMemberId, string removingReason)\r\n        {\r\n            _meetingGroup = meetingGroup;\r\n            _removingMemberId = removingMemberId;\r\n            _removingReason = removingReason;\r\n        }\r\n\r\n        public bool IsBroken() =\u003E\r\n            !string.IsNullOrEmpty(_removingReason) \u0026\u0026 !_meetingGroup.IsOrganizer(_removingMemberId);\r\n\r\n        public string Message =\u003E \u0022Only group organizer can provide comment\u0027s removing reason.\u0022;\r\n    }\r\n}","mutants":[{"id":"78","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":14,"column":9},"end":{"line":18,"column":10}},"status":"Killed","static":false},{"id":"79","mutatorName":"Logical mutation","replacement":"            !string.IsNullOrEmpty(_removingReason) || !_meetingGroup.IsOrganizer(_removingMemberId)","location":{"start":{"line":21,"column":13},"end":{"line":21,"column":100}},"status":"Killed","static":false},{"id":"80","mutatorName":"LogicalNotExpression to un-LogicalNotExpression mutation","replacement":"string.IsNullOrEmpty(_removingReason) ","location":{"start":{"line":21,"column":13},"end":{"line":21,"column":51}},"status":"Killed","static":false},{"id":"81","mutatorName":"LogicalNotExpression to un-LogicalNotExpression mutation","replacement":"_meetingGroup.IsOrganizer(_removingMemberId)","location":{"start":{"line":21,"column":55},"end":{"line":21,"column":100}},"status":"Killed","static":false},{"id":"82","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":23,"column":34},"end":{"line":23,"column":95}},"status":"Survived","static":false}]},"MeetingGroupProposals\\Events\\MeetingGroupProposalAcceptedDomainEvent.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroupProposals.Events\r\n{\r\n    public class MeetingGroupProposalAcceptedDomainEvent : DomainEventBase\r\n    {\r\n        public MeetingGroupProposalId MeetingGroupProposalId { get; }\r\n\r\n        public MeetingGroupProposalAcceptedDomainEvent(MeetingGroupProposalId meetingGroupProposalId)\r\n        {\r\n            MeetingGroupProposalId = meetingGroupProposalId;\r\n        }\r\n    }\r\n}","mutants":[{"id":"83","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":10,"column":9},"end":{"line":12,"column":10}},"status":"Killed","static":false}]},"MeetingGroupProposals\\Events\\MeetingGroupProposedDomainEvent.cs":{"language":"cs","source":"using System;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroupProposals.Events\r\n{\r\n    public class MeetingGroupProposedDomainEvent : DomainEventBase\r\n    {\r\n        public MeetingGroupProposedDomainEvent(\r\n            MeetingGroupProposalId meetingGroupProposalId,\r\n            string name,\r\n            string description,\r\n            MemberId proposalUserId,\r\n            DateTime proposalDate,\r\n            string locationCity,\r\n            string locationCountryCode)\r\n        {\r\n            this.MeetingGroupProposalId = meetingGroupProposalId;\r\n            this.Name = name;\r\n            this.Description = description;\r\n            this.LocationCity = locationCity;\r\n            this.LocationCountryCode = locationCountryCode;\r\n            this.ProposalDate = proposalDate;\r\n            this.ProposalUserId = proposalUserId;\r\n        }\r\n\r\n        public MeetingGroupProposalId MeetingGroupProposalId { get; }\r\n\r\n        public string Name { get; }\r\n\r\n        public string Description { get; }\r\n\r\n        public string LocationCity { get; }\r\n\r\n        public string LocationCountryCode { get; }\r\n\r\n        public MemberId ProposalUserId { get; }\r\n\r\n        public DateTime ProposalDate { get; }\r\n    }\r\n}","mutants":[{"id":"84","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":17,"column":9},"end":{"line":25,"column":10}},"status":"Killed","static":false}]},"MeetingGroupProposals\\IMeetingGroupProposalRepository.cs":{"language":"cs","source":"using System;\r\nusing System.Threading.Tasks;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroupProposals\r\n{\r\n    public interface IMeetingGroupProposalRepository\r\n    {\r\n        Task AddAsync(MeetingGroupProposal meetingGroupProposal);\r\n\r\n        Task\u003CMeetingGroupProposal\u003E GetByIdAsync(MeetingGroupProposalId meetingGroupProposalId);\r\n    }\r\n}","mutants":[]},"MeetingGroupProposals\\MeetingGroupProposal.cs":{"language":"cs","source":"using System;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroupProposals.Events;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroupProposals.Rules;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.SharedKernel;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroupProposals\r\n{\r\n    public class MeetingGroupProposal : Entity, IAggregateRoot\r\n    {\r\n        public MeetingGroupProposalId Id { get; private set; }\r\n\r\n        private string _name;\r\n\r\n        private string _description;\r\n\r\n        private MeetingGroupLocation _location;\r\n\r\n        private DateTime _proposalDate;\r\n\r\n        private MemberId _proposalUserId;\r\n\r\n        private MeetingGroupProposalStatus _status;\r\n\r\n        public MeetingGroup CreateMeetingGroup()\r\n        {\r\n            return MeetingGroup.CreateBasedOnProposal(this.Id, _name, _description, _location, _proposalUserId);\r\n        }\r\n\r\n        private MeetingGroupProposal()\r\n        {\r\n            // Only for EF.\r\n        }\r\n\r\n        private MeetingGroupProposal(\r\n            string name,\r\n            string description,\r\n            MeetingGroupLocation location,\r\n            MemberId proposalUserId)\r\n        {\r\n            Id = new MeetingGroupProposalId(Guid.NewGuid());\r\n            _name = name;\r\n            _description = description;\r\n            _location = location;\r\n            _proposalUserId = proposalUserId;\r\n            _proposalDate = SystemClock.Now;\r\n            _status = MeetingGroupProposalStatus.InVerification;\r\n\r\n            this.AddDomainEvent(new MeetingGroupProposedDomainEvent(this.Id, _name, _description, proposalUserId, _proposalDate, _location.City, _location.CountryCode));\r\n        }\r\n\r\n        public static MeetingGroupProposal ProposeNew(\r\n            string name,\r\n            string description,\r\n            MeetingGroupLocation location,\r\n            MemberId proposalMemberId)\r\n        {\r\n            return new MeetingGroupProposal(name, description, location, proposalMemberId);\r\n        }\r\n\r\n        public void Accept()\r\n        {\r\n            this.CheckRule(new MeetingGroupProposalCannotBeAcceptedMoreThanOnceRule(_status));\r\n\r\n            _status = MeetingGroupProposalStatus.Accepted;\r\n\r\n            this.AddDomainEvent(new MeetingGroupProposalAcceptedDomainEvent(this.Id));\r\n        }\r\n    }\r\n}\r\n","mutants":[{"id":"85","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":28,"column":9},"end":{"line":30,"column":10}},"status":"Killed","static":false},{"id":"86","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":42,"column":9},"end":{"line":52,"column":10}},"status":"Killed","static":false},{"id":"87","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":51,"column":13},"end":{"line":51,"column":170}},"status":"Killed","static":false},{"id":"88","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":59,"column":9},"end":{"line":61,"column":10}},"status":"Killed","static":false},{"id":"89","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":64,"column":9},"end":{"line":70,"column":10}},"status":"Killed","static":false},{"id":"90","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":65,"column":13},"end":{"line":65,"column":95}},"status":"Killed","static":false},{"id":"91","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":69,"column":13},"end":{"line":69,"column":87}},"status":"Killed","static":false}]},"MeetingGroupProposals\\MeetingGroupProposalId.cs":{"language":"cs","source":"using System;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroupProposals\r\n{\r\n    public class MeetingGroupProposalId : TypedIdValueBase\r\n    {\r\n        public MeetingGroupProposalId(Guid value)\r\n            : base(value)\r\n        {\r\n        }\r\n    }\r\n}","mutants":[]},"MeetingGroupProposals\\MeetingGroupProposalStatus.cs":{"language":"cs","source":"using System.Reflection.Metadata;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroupProposals\r\n{\r\n    public class MeetingGroupProposalStatus : ValueObject\r\n    {\r\n        public string Value { get; }\r\n\r\n        internal static MeetingGroupProposalStatus InVerification =\u003E new MeetingGroupProposalStatus(\u0022InVerification\u0022);\r\n\r\n        internal static MeetingGroupProposalStatus Accepted =\u003E new MeetingGroupProposalStatus(\u0022Accepted\u0022);\r\n\r\n        internal bool IsAccepted =\u003E Value == \u0022Accepted\u0022;\r\n\r\n        private MeetingGroupProposalStatus(string value)\r\n        {\r\n            Value = value;\r\n        }\r\n    }\r\n}","mutants":[{"id":"92","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":10,"column":101},"end":{"line":10,"column":117}},"status":"Survived","static":false},{"id":"93","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":12,"column":95},"end":{"line":12,"column":105}},"status":"Killed","static":false},{"id":"94","mutatorName":"Equality mutation","replacement":"Value != \u0022Accepted\u0022","location":{"start":{"line":14,"column":37},"end":{"line":14,"column":56}},"status":"Killed","static":false},{"id":"95","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":14,"column":46},"end":{"line":14,"column":56}},"status":"Killed","static":false},{"id":"96","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":17,"column":9},"end":{"line":19,"column":10}},"status":"Killed","static":false}]},"MeetingGroupProposals\\Rules\\MeetingGroupProposalCannotBeAcceptedMoreThanOnceRule.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroupProposals.Rules\r\n{\r\n    public class MeetingGroupProposalCannotBeAcceptedMoreThanOnceRule : IBusinessRule\r\n    {\r\n        private readonly MeetingGroupProposalStatus _actualStatus;\r\n\r\n        internal MeetingGroupProposalCannotBeAcceptedMoreThanOnceRule(MeetingGroupProposalStatus actualStatus)\r\n        {\r\n            _actualStatus = actualStatus;\r\n        }\r\n\r\n        public bool IsBroken() =\u003E _actualStatus.IsAccepted;\r\n\r\n        public string Message =\u003E \u0022Meeting group proposal cannot be accepted more than once rule\u0022;\r\n    }\r\n}","mutants":[{"id":"97","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":10,"column":9},"end":{"line":12,"column":10}},"status":"Killed","static":false},{"id":"98","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":16,"column":34},"end":{"line":16,"column":97}},"status":"Survived","static":false}]},"MeetingGroups\\Events\\MeetingAttendeeChangedDecisionDomainEvent.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups.Events\r\n{\r\n    public class MeetingAttendeeChangedDecisionDomainEvent : DomainEventBase\r\n    {\r\n        public MeetingAttendeeChangedDecisionDomainEvent(MemberId memberId, MeetingId meetingId)\r\n        {\r\n            MemberId = memberId;\r\n            MeetingId = meetingId;\r\n        }\r\n\r\n        public MemberId MemberId { get; }\r\n\r\n        public MeetingId MeetingId { get; }\r\n    }\r\n}","mutants":[{"id":"99","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":10,"column":9},"end":{"line":13,"column":10}},"status":"Killed","static":false}]},"MeetingGroups\\Events\\MeetingGroupCreatedDomainEvent.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups.Events\r\n{\r\n    public class MeetingGroupCreatedDomainEvent : DomainEventBase\r\n    {\r\n        public MeetingGroupId MeetingGroupId { get; }\r\n\r\n        public MemberId CreatorId { get; }\r\n\r\n        public MeetingGroupCreatedDomainEvent(MeetingGroupId meetingGroupId, MemberId creatorId)\r\n        {\r\n            this.MeetingGroupId = meetingGroupId;\r\n            this.CreatorId = creatorId;\r\n        }\r\n    }\r\n}\r\n","mutants":[{"id":"100","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":13,"column":9},"end":{"line":16,"column":10}},"status":"Killed","static":false}]},"MeetingGroups\\Events\\MeetingGroupGeneralAttributesEditedDomainEvent.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups.Events\r\n{\r\n    public class MeetingGroupGeneralAttributesEditedDomainEvent : DomainEventBase\r\n    {\r\n        public string NewName { get; }\r\n\r\n        public string NewDescription { get; }\r\n\r\n        public MeetingGroupLocation NewLocation { get; }\r\n\r\n        public MeetingGroupGeneralAttributesEditedDomainEvent(string newName, string newDescription, MeetingGroupLocation newLocation)\r\n        {\r\n            this.NewName = newName;\r\n            this.NewDescription = newDescription;\r\n            this.NewLocation = newLocation;\r\n        }\r\n    }\r\n}\r\n","mutants":[{"id":"101","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":14,"column":9},"end":{"line":18,"column":10}},"status":"Killed","static":false}]},"MeetingGroups\\Events\\MeetingGroupMemberLeftGroupDomainEvent.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups.Events\r\n{\r\n    public class MeetingGroupMemberLeftGroupDomainEvent : DomainEventBase\r\n    {\r\n        public MeetingGroupMemberLeftGroupDomainEvent(MeetingGroupId meetingGroupId, MemberId memberId)\r\n        {\r\n            MeetingGroupId = meetingGroupId;\r\n            MemberId = memberId;\r\n        }\r\n\r\n        public MeetingGroupId MeetingGroupId { get; }\r\n\r\n        public MemberId MemberId { get; }\r\n    }\r\n}","mutants":[{"id":"102","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":9,"column":9},"end":{"line":12,"column":10}},"status":"Killed","static":false}]},"MeetingGroups\\Events\\MeetingGroupPaymentInfoUpdatedDomainEvent.cs":{"language":"cs","source":"using System;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups.Events\r\n{\r\n    public class MeetingGroupPaymentInfoUpdatedDomainEvent : DomainEventBase\r\n    {\r\n        public MeetingGroupPaymentInfoUpdatedDomainEvent(MeetingGroupId meetingGroupId, DateTime paymentDateTo)\r\n        {\r\n            MeetingGroupId = meetingGroupId;\r\n            PaymentDateTo = paymentDateTo;\r\n        }\r\n\r\n        public MeetingGroupId MeetingGroupId { get; }\r\n\r\n        public DateTime PaymentDateTo { get; }\r\n    }\r\n}","mutants":[{"id":"103","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":9,"column":9},"end":{"line":12,"column":10}},"status":"Killed","static":false}]},"MeetingGroups\\Events\\MeetingNotAttendeeChangedDecisionDomainEvent.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups.Events\r\n{\r\n    public class MeetingNotAttendeeChangedDecisionDomainEvent : DomainEventBase\r\n    {\r\n        public MeetingNotAttendeeChangedDecisionDomainEvent(MemberId memberId, MeetingId meetingId)\r\n        {\r\n            MemberId = memberId;\r\n            MeetingId = meetingId;\r\n        }\r\n\r\n        public MemberId MemberId { get; }\r\n\r\n        public MeetingId MeetingId { get; }\r\n    }\r\n}","mutants":[{"id":"104","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":10,"column":9},"end":{"line":13,"column":10}},"status":"Killed","static":false}]},"MeetingGroups\\Events\\NewMeetingGroupMemberJoinedDomainEvent.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups.Events\r\n{\r\n    public class NewMeetingGroupMemberJoinedDomainEvent : DomainEventBase\r\n    {\r\n        public MeetingGroupId MeetingGroupId { get; }\r\n\r\n        public MemberId MemberId { get; }\r\n\r\n        public MeetingGroupMemberRole Role { get; }\r\n\r\n        public NewMeetingGroupMemberJoinedDomainEvent(MeetingGroupId meetingGroupId, MemberId memberId, MeetingGroupMemberRole role)\r\n        {\r\n            this.MeetingGroupId = meetingGroupId;\r\n            this.MemberId = memberId;\r\n            this.Role = role;\r\n        }\r\n    }\r\n}\r\n","mutants":[{"id":"105","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":15,"column":9},"end":{"line":19,"column":10}},"status":"Killed","static":false}]},"MeetingGroups\\IMeetingGroupRepository.cs":{"language":"cs","source":"using System;\r\nusing System.Threading.Tasks;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups\r\n{\r\n    public interface IMeetingGroupRepository\r\n    {\r\n        Task AddAsync(MeetingGroup meetingGroup);\r\n\r\n        Task\u003Cint\u003E Commit();\r\n\r\n        Task\u003CMeetingGroup\u003E GetByIdAsync(MeetingGroupId id);\r\n    }\r\n}","mutants":[]},"MeetingGroups\\MeetingGroup.cs":{"language":"cs","source":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Linq;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroupProposals;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups.Events;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups.Rules;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Rules;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.SharedKernel;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups\r\n{\r\n    public class MeetingGroup : Entity, IAggregateRoot\r\n    {\r\n        public MeetingGroupId Id { get; private set; }\r\n\r\n        private string _name;\r\n\r\n        private string _description;\r\n\r\n        private MeetingGroupLocation _location;\r\n\r\n        private MemberId _creatorId;\r\n\r\n        private List\u003CMeetingGroupMember\u003E _members;\r\n\r\n        private DateTime _createDate;\r\n\r\n        private DateTime? _paymentDateTo;\r\n\r\n        internal static MeetingGroup CreateBasedOnProposal(\r\n            MeetingGroupProposalId meetingGroupProposalId,\r\n            string name,\r\n            string description,\r\n            MeetingGroupLocation location,\r\n            MemberId creatorId)\r\n        {\r\n            return new MeetingGroup(meetingGroupProposalId, name, description, location, creatorId);\r\n        }\r\n\r\n        private MeetingGroup()\r\n        {\r\n            // Only for EF.\r\n        }\r\n\r\n        private MeetingGroup(MeetingGroupProposalId meetingGroupProposalId, string name, string description, MeetingGroupLocation location, MemberId creatorId)\r\n        {\r\n            this.Id = new MeetingGroupId(meetingGroupProposalId.Value);\r\n            this._name = name;\r\n            this._description = description;\r\n            this._creatorId = creatorId;\r\n            this._location = location;\r\n            this._createDate = SystemClock.Now;\r\n\r\n            this.AddDomainEvent(new MeetingGroupCreatedDomainEvent(this.Id, creatorId));\r\n\r\n            this._members = new List\u003CMeetingGroupMember\u003E();\r\n            this._members.Add(MeetingGroupMember.CreateNew(this.Id, this._creatorId, MeetingGroupMemberRole.Organizer));\r\n        }\r\n\r\n        public void EditGeneralAttributes(string name, string description, MeetingGroupLocation location)\r\n        {\r\n            this._name = name;\r\n            this._description = description;\r\n            this._location = location;\r\n\r\n            this.AddDomainEvent(new MeetingGroupGeneralAttributesEditedDomainEvent(this._name, this._description, this._location));\r\n        }\r\n\r\n        public void JoinToGroupMember(MemberId memberId)\r\n        {\r\n            this.CheckRule(new MeetingGroupMemberCannotBeAddedTwiceRule(_members, memberId));\r\n\r\n            this._members.Add(MeetingGroupMember.CreateNew(this.Id, memberId, MeetingGroupMemberRole.Member));\r\n        }\r\n\r\n        public void LeaveGroup(MemberId memberId)\r\n        {\r\n            this.CheckRule(new NotActualGroupMemberCannotLeaveGroupRule(_members, memberId));\r\n\r\n            var member = this._members.Single(x =\u003E x.IsMember(memberId));\r\n\r\n            member.Leave();\r\n        }\r\n\r\n        public void SetExpirationDate(DateTime dateTo)\r\n        {\r\n            _paymentDateTo = dateTo;\r\n\r\n            this.AddDomainEvent(new MeetingGroupPaymentInfoUpdatedDomainEvent(this.Id, _paymentDateTo.Value));\r\n        }\r\n\r\n        public Meeting CreateMeeting(\r\n            string title,\r\n            MeetingTerm term,\r\n            string description,\r\n            MeetingLocation location,\r\n            int? attendeesLimit,\r\n            int guestsLimit,\r\n            Term rsvpTerm,\r\n            MoneyValue eventFee,\r\n            List\u003CMemberId\u003E hostsMembersIds,\r\n            MemberId creatorId)\r\n        {\r\n            this.CheckRule(new MeetingCanBeOrganizedOnlyByPayedGroupRule(_paymentDateTo));\r\n\r\n            this.CheckRule(new MeetingHostMustBeAMeetingGroupMemberRule(creatorId, hostsMembersIds, _members));\r\n\r\n            return Meeting.CreateNew(\r\n                this.Id,\r\n                title,\r\n                term,\r\n                description,\r\n                location,\r\n                MeetingLimits.Create(attendeesLimit, guestsLimit),\r\n                rsvpTerm,\r\n                eventFee,\r\n                hostsMembersIds,\r\n                creatorId);\r\n        }\r\n\r\n        internal bool IsMemberOfGroup(MemberId attendeeId)\r\n        {\r\n            return _members.Any(x =\u003E x.IsMember(attendeeId));\r\n        }\r\n\r\n        internal bool IsOrganizer(MemberId memberId)\r\n        {\r\n            return _members.Any(x =\u003E x.IsOrganizer(memberId));\r\n        }\r\n    }\r\n}\r\n","mutants":[{"id":"106","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":40,"column":9},"end":{"line":42,"column":10}},"status":"Killed","static":false},{"id":"107","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":50,"column":9},"end":{"line":62,"column":10}},"status":"Killed","static":false},{"id":"108","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":58,"column":13},"end":{"line":58,"column":89}},"status":"Killed","static":false},{"id":"109","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":61,"column":13},"end":{"line":61,"column":121}},"status":"Killed","static":false},{"id":"110","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":65,"column":9},"end":{"line":71,"column":10}},"status":"Killed","static":false},{"id":"111","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":70,"column":13},"end":{"line":70,"column":132}},"status":"Killed","static":false},{"id":"112","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":74,"column":9},"end":{"line":78,"column":10}},"status":"Killed","static":false},{"id":"113","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":75,"column":13},"end":{"line":75,"column":94}},"status":"Killed","static":false},{"id":"114","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":77,"column":13},"end":{"line":77,"column":111}},"status":"Killed","static":false},{"id":"115","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":81,"column":9},"end":{"line":87,"column":10}},"status":"Killed","static":false},{"id":"116","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":82,"column":13},"end":{"line":82,"column":94}},"status":"Killed","static":false},{"id":"117","mutatorName":"Linq method mutation (Single() to SingleOrDefault())","replacement":"this._members.SingleOrDefault(x =\u003E x.IsMember(memberId))","location":{"start":{"line":84,"column":26},"end":{"line":84,"column":73}},"status":"Survived","static":false},{"id":"118","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":86,"column":13},"end":{"line":86,"column":28}},"status":"Killed","static":false},{"id":"119","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":90,"column":9},"end":{"line":94,"column":10}},"status":"Killed","static":false},{"id":"120","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":93,"column":13},"end":{"line":93,"column":111}},"status":"Killed","static":false},{"id":"121","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":107,"column":9},"end":{"line":123,"column":10}},"status":"Killed","static":false},{"id":"122","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":108,"column":13},"end":{"line":108,"column":91}},"status":"Killed","static":false},{"id":"123","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":110,"column":13},"end":{"line":110,"column":112}},"status":"Killed","static":false},{"id":"124","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":126,"column":9},"end":{"line":128,"column":10}},"status":"Killed","static":false},{"id":"125","mutatorName":"Linq method mutation (Any() to All())","replacement":"_members.All(x =\u003E x.IsMember(attendeeId))","location":{"start":{"line":127,"column":20},"end":{"line":127,"column":61}},"status":"Killed","static":false},{"id":"126","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":131,"column":9},"end":{"line":133,"column":10}},"status":"Killed","static":false},{"id":"127","mutatorName":"Linq method mutation (Any() to All())","replacement":"_members.All(x =\u003E x.IsOrganizer(memberId))","location":{"start":{"line":132,"column":20},"end":{"line":132,"column":62}},"status":"Killed","static":false}]},"MeetingGroups\\MeetingGroupId.cs":{"language":"cs","source":"using System;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups\r\n{\r\n    public class MeetingGroupId : TypedIdValueBase\r\n    {\r\n        public MeetingGroupId(Guid value)\r\n            : base(value)\r\n        {\r\n        }\r\n    }\r\n}","mutants":[]},"MeetingGroups\\MeetingGroupLocation.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups\r\n{\r\n    public class MeetingGroupLocation : ValueObject\r\n    {\r\n        public static MeetingGroupLocation CreateNew(string city, string countryCode)\r\n        {\r\n            return new MeetingGroupLocation(city, countryCode);\r\n        }\r\n\r\n        public string City { get; }\r\n\r\n        public string CountryCode { get; }\r\n\r\n        private MeetingGroupLocation(string city, string countryCode)\r\n        {\r\n            City = city;\r\n            CountryCode = countryCode;\r\n        }\r\n    }\r\n}","mutants":[{"id":"128","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":8,"column":9},"end":{"line":10,"column":10}},"status":"Killed","static":false},{"id":"129","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":17,"column":9},"end":{"line":20,"column":10}},"status":"Survived","static":false}]},"MeetingGroups\\MeetingGroupMember.cs":{"language":"cs","source":"using System;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups.Events;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.SharedKernel;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups\r\n{\r\n    public class MeetingGroupMember : Entity\r\n    {\r\n        internal MeetingGroupId MeetingGroupId { get; private set; }\r\n\r\n        internal MemberId MemberId { get; private set; }\r\n\r\n        private MeetingGroupMemberRole _role;\r\n\r\n        internal DateTime JoinedDate { get; private set; }\r\n\r\n        private bool _isActive;\r\n\r\n        private DateTime? _leaveDate;\r\n\r\n        private MeetingGroupMember()\r\n        {\r\n            // Only for EF.\r\n        }\r\n\r\n        private MeetingGroupMember(\r\n            MeetingGroupId meetingGroupId,\r\n            MemberId memberId,\r\n            MeetingGroupMemberRole role)\r\n        {\r\n            this.MeetingGroupId = meetingGroupId;\r\n            this.MemberId = memberId;\r\n            this._role = role;\r\n            this.JoinedDate = SystemClock.Now;\r\n            this._isActive = true;\r\n\r\n            this.AddDomainEvent(new NewMeetingGroupMemberJoinedDomainEvent(this.MeetingGroupId, this.MemberId, this._role));\r\n        }\r\n\r\n        internal static MeetingGroupMember CreateNew(\r\n            MeetingGroupId meetingGroupId,\r\n            MemberId memberId,\r\n            MeetingGroupMemberRole role)\r\n        {\r\n            return new MeetingGroupMember(meetingGroupId, memberId, role);\r\n        }\r\n\r\n        internal void Leave()\r\n        {\r\n            _isActive = false;\r\n            _leaveDate = SystemClock.Now;\r\n\r\n            this.AddDomainEvent(new MeetingGroupMemberLeftGroupDomainEvent(this.MeetingGroupId, this.MemberId));\r\n        }\r\n\r\n        internal bool IsMember(MemberId memberId)\r\n        {\r\n            return this._isActive \u0026\u0026 this.MemberId == memberId;\r\n        }\r\n\r\n        internal bool IsOrganizer(MemberId memberId)\r\n        {\r\n            return this.IsMember(memberId) \u0026\u0026 _role == MeetingGroupMemberRole.Organizer;\r\n        }\r\n    }\r\n}","mutants":[{"id":"130","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":32,"column":9},"end":{"line":40,"column":10}},"status":"Killed","static":false},{"id":"131","mutatorName":"Boolean mutation","replacement":"false","location":{"start":{"line":37,"column":30},"end":{"line":37,"column":34}},"status":"Killed","static":false},{"id":"132","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":39,"column":13},"end":{"line":39,"column":125}},"status":"Killed","static":false},{"id":"133","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":46,"column":9},"end":{"line":48,"column":10}},"status":"Killed","static":false},{"id":"134","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":51,"column":9},"end":{"line":56,"column":10}},"status":"Killed","static":false},{"id":"135","mutatorName":"Boolean mutation","replacement":"true","location":{"start":{"line":52,"column":25},"end":{"line":52,"column":30}},"status":"Survived","static":false},{"id":"136","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":55,"column":13},"end":{"line":55,"column":113}},"status":"Killed","static":false},{"id":"137","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":59,"column":9},"end":{"line":61,"column":10}},"status":"Killed","static":false},{"id":"138","mutatorName":"Logical mutation","replacement":"this._isActive || this.MemberId == memberId","location":{"start":{"line":60,"column":20},"end":{"line":60,"column":63}},"status":"Killed","static":false},{"id":"139","mutatorName":"Equality mutation","replacement":"this.MemberId != memberId","location":{"start":{"line":60,"column":38},"end":{"line":60,"column":63}},"status":"Killed","static":false},{"id":"140","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":64,"column":9},"end":{"line":66,"column":10}},"status":"Killed","static":false},{"id":"141","mutatorName":"Logical mutation","replacement":"this.IsMember(memberId) || _role == MeetingGroupMemberRole.Organizer","location":{"start":{"line":65,"column":20},"end":{"line":65,"column":88}},"status":"Killed","static":false},{"id":"142","mutatorName":"Equality mutation","replacement":"_role != MeetingGroupMemberRole.Organizer","location":{"start":{"line":65,"column":47},"end":{"line":65,"column":88}},"status":"Killed","static":false}]},"MeetingGroups\\MeetingGroupMemberRole.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups\r\n{\r\n    public class MeetingGroupMemberRole : ValueObject\r\n    {\r\n        public static MeetingGroupMemberRole Organizer =\u003E new MeetingGroupMemberRole(\u0022Organizer\u0022);\r\n\r\n        public static MeetingGroupMemberRole Member =\u003E new MeetingGroupMemberRole(\u0022Member\u0022);\r\n\r\n        public string Value { get; }\r\n\r\n        private MeetingGroupMemberRole(string value)\r\n        {\r\n            this.Value = value;\r\n        }\r\n\r\n        public static MeetingGroupMemberRole Of(string roleCode)\r\n        {\r\n            return new MeetingGroupMemberRole(roleCode);\r\n        }\r\n    }\r\n}","mutants":[{"id":"143","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":7,"column":86},"end":{"line":7,"column":97}},"status":"Survived","static":false},{"id":"144","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":9,"column":83},"end":{"line":9,"column":91}},"status":"Survived","static":false},{"id":"145","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":14,"column":9},"end":{"line":16,"column":10}},"status":"Killed","static":false},{"id":"146","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":19,"column":9},"end":{"line":21,"column":10}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false}]},"MeetingGroups\\Policies\\MeetingGroupExpirationDatePolicy.cs":{"language":"cs","source":"using System.Collections.Generic;\r\nusing System.Linq;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups.Policies\r\n{\r\n    public static class MeetingGroupExpirationDatePolicy\r\n    {\r\n        public static List\u003CMeetingGroupId\u003E GetMeetingGroupsCoveredByMemberSubscription(\r\n            List\u003CMeetingGroupMemberData\u003E meetingGroups)\r\n        {\r\n            return meetingGroups\r\n                .Where(x =\u003E x.Role == MeetingGroupMemberRole.Organizer)\r\n                .Select(x =\u003E x.MeetingGroupId)\r\n                .ToList();\r\n        }\r\n    }\r\n}","mutants":[{"id":"147","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":10,"column":9},"end":{"line":15,"column":10}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false},{"id":"148","mutatorName":"Equality mutation","replacement":"x.Role != MeetingGroupMemberRole.Organizer","location":{"start":{"line":12,"column":29},"end":{"line":12,"column":71}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false}]},"MeetingGroups\\Policies\\MeetingGroupMemberData.cs":{"language":"cs","source":"namespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups.Policies\r\n{\r\n    public class MeetingGroupMemberData\r\n    {\r\n        public MeetingGroupMemberData(MeetingGroupId meetingGroupId, MeetingGroupMemberRole role)\r\n        {\r\n            MeetingGroupId = meetingGroupId;\r\n            Role = role;\r\n        }\r\n\r\n        public MeetingGroupId MeetingGroupId { get; }\r\n\r\n        public MeetingGroupMemberRole Role { get; }\r\n    }\r\n}","mutants":[{"id":"149","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":6,"column":9},"end":{"line":9,"column":10}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false}]},"MeetingGroups\\Rules\\MeetingCanBeOrganizedOnlyByPayedGroupRule.cs":{"language":"cs","source":"using System;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.SharedKernel;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups.Rules\r\n{\r\n    public class MeetingCanBeOrganizedOnlyByPayedGroupRule : IBusinessRule\r\n    {\r\n        private readonly DateTime? _paymentDateTo;\r\n\r\n        internal MeetingCanBeOrganizedOnlyByPayedGroupRule(DateTime? paymentDateTo)\r\n        {\r\n            _paymentDateTo = paymentDateTo;\r\n        }\r\n\r\n        public bool IsBroken() =\u003E !_paymentDateTo.HasValue || _paymentDateTo \u003C SystemClock.Now;\r\n\r\n        public string Message =\u003E \u0022Meeting can be organized only by payed group\u0022;\r\n    }\r\n}","mutants":[{"id":"150","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":12,"column":9},"end":{"line":14,"column":10}},"status":"Killed","static":false},{"id":"151","mutatorName":"Logical mutation","replacement":"!_paymentDateTo.HasValue \u0026\u0026 _paymentDateTo \u003C SystemClock.Now","location":{"start":{"line":16,"column":35},"end":{"line":16,"column":95}},"status":"Killed","static":false},{"id":"152","mutatorName":"LogicalNotExpression to un-LogicalNotExpression mutation","replacement":"_paymentDateTo.HasValue ","location":{"start":{"line":16,"column":35},"end":{"line":16,"column":59}},"status":"Killed","static":false},{"id":"153","mutatorName":"Equality mutation","replacement":"_paymentDateTo \u003E SystemClock.Now","location":{"start":{"line":16,"column":63},"end":{"line":16,"column":95}},"status":"Killed","static":false},{"id":"154","mutatorName":"Equality mutation","replacement":"_paymentDateTo \u003C= SystemClock.Now","location":{"start":{"line":16,"column":63},"end":{"line":16,"column":95}},"status":"Survived","static":false},{"id":"155","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":18,"column":34},"end":{"line":18,"column":80}},"status":"Survived","static":false}]},"MeetingGroups\\Rules\\MeetingGroupMemberCannotBeAddedTwiceRule.cs":{"language":"cs","source":"using System.Collections.Generic;\r\nusing System.Linq;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups.Rules\r\n{\r\n    public class MeetingGroupMemberCannotBeAddedTwiceRule : IBusinessRule\r\n    {\r\n        private readonly List\u003CMeetingGroupMember\u003E _members;\r\n\r\n        private readonly MemberId _memberId;\r\n\r\n        public MeetingGroupMemberCannotBeAddedTwiceRule(List\u003CMeetingGroupMember\u003E members, MemberId memberId)\r\n            : base()\r\n        {\r\n            _members = members;\r\n            _memberId = memberId;\r\n        }\r\n\r\n        public bool IsBroken() =\u003E this._members.SingleOrDefault(x =\u003E x.IsMember(_memberId)) != null;\r\n\r\n        public string Message =\u003E \u0022Member cannot be added twice to the same group\u0022;\r\n    }\r\n}","mutants":[{"id":"156","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":16,"column":9},"end":{"line":19,"column":10}},"status":"Killed","static":false},{"id":"157","mutatorName":"Equality mutation","replacement":"this._members.SingleOrDefault(x =\u003E x.IsMember(_memberId)) == null","location":{"start":{"line":21,"column":35},"end":{"line":21,"column":100}},"status":"Killed","static":false},{"id":"158","mutatorName":"Linq method mutation (SingleOrDefault() to Single())","replacement":"this._members.Single(x =\u003E x.IsMember(_memberId)) ","location":{"start":{"line":21,"column":35},"end":{"line":21,"column":92}},"status":"Killed","static":false},{"id":"159","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":23,"column":34},"end":{"line":23,"column":82}},"status":"Survived","static":false}]},"MeetingGroups\\Rules\\MeetingHostMustBeAMeetingGroupMemberRule.cs":{"language":"cs","source":"using System.Collections.Generic;\r\nusing System.Linq;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups.Rules\r\n{\r\n    public class MeetingHostMustBeAMeetingGroupMemberRule : IBusinessRule\r\n    {\r\n        private readonly MemberId _creatorId;\r\n\r\n        private readonly List\u003CMemberId\u003E _hostsMembersIds;\r\n\r\n        private readonly List\u003CMeetingGroupMember\u003E _members;\r\n\r\n        public MeetingHostMustBeAMeetingGroupMemberRule(\r\n            MemberId creatorId,\r\n            List\u003CMemberId\u003E hostsMembersIds,\r\n            List\u003CMeetingGroupMember\u003E members)\r\n        {\r\n            _creatorId = creatorId;\r\n            _hostsMembersIds = hostsMembersIds;\r\n            _members = members;\r\n        }\r\n\r\n        public bool IsBroken()\r\n        {\r\n            var memberIds = _members.Select(x =\u003E x.MemberId).ToList();\r\n            if (!_hostsMembersIds.Any() \u0026\u0026 !memberIds.Contains(_creatorId))\r\n            {\r\n                return true;\r\n            }\r\n\r\n            return _hostsMembersIds.Any() \u0026\u0026 _hostsMembersIds.Except(memberIds).Any();\r\n        }\r\n\r\n        public string Message =\u003E \u0022Meeting host must be a meeting group member\u0022;\r\n    }\r\n}","mutants":[{"id":"160","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":20,"column":9},"end":{"line":24,"column":10}},"status":"Killed","static":false},{"id":"161","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":27,"column":9},"end":{"line":35,"column":10}},"status":"Killed","static":false},{"id":"162","mutatorName":"Logical mutation","replacement":"!_hostsMembersIds.Any() || !memberIds.Contains(_creatorId)","location":{"start":{"line":29,"column":17},"end":{"line":29,"column":75}},"status":"Killed","static":false},{"id":"163","mutatorName":"Negate expression","replacement":"!(!_hostsMembersIds.Any() \u0026\u0026 !memberIds.Contains(_creatorId))","location":{"start":{"line":29,"column":17},"end":{"line":29,"column":75}},"status":"Killed","static":false},{"id":"164","mutatorName":"LogicalNotExpression to un-LogicalNotExpression mutation","replacement":"_hostsMembersIds.Any() ","location":{"start":{"line":29,"column":17},"end":{"line":29,"column":40}},"status":"Killed","static":false},{"id":"165","mutatorName":"LogicalNotExpression to un-LogicalNotExpression mutation","replacement":"memberIds.Contains(_creatorId)","location":{"start":{"line":29,"column":44},"end":{"line":29,"column":75}},"status":"Killed","static":false},{"id":"166","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":30,"column":13},"end":{"line":32,"column":14}},"status":"Killed","static":false},{"id":"167","mutatorName":"Boolean mutation","replacement":"false","location":{"start":{"line":31,"column":24},"end":{"line":31,"column":28}},"status":"Killed","static":false},{"id":"168","mutatorName":"Logical mutation","replacement":"_hostsMembersIds.Any() || _hostsMembersIds.Except(memberIds).Any()","location":{"start":{"line":34,"column":20},"end":{"line":34,"column":86}},"status":"Killed","static":false},{"id":"169","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":37,"column":34},"end":{"line":37,"column":79}},"status":"Survived","static":false}]},"MeetingGroups\\Rules\\NotActualGroupMemberCannotLeaveGroupRule.cs":{"language":"cs","source":"using System.Collections.Generic;\r\nusing System.Linq;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups.Rules\r\n{\r\n    public class NotActualGroupMemberCannotLeaveGroupRule : IBusinessRule\r\n    {\r\n        private readonly List\u003CMeetingGroupMember\u003E _members;\r\n\r\n        private readonly MemberId memberId;\r\n\r\n        public NotActualGroupMemberCannotLeaveGroupRule(List\u003CMeetingGroupMember\u003E members, MemberId memberId)\r\n            : base()\r\n        {\r\n            _members = members;\r\n            this.memberId = memberId;\r\n        }\r\n\r\n        public bool IsBroken() =\u003E this._members.SingleOrDefault(x =\u003E x.IsMember(memberId)) == null;\r\n\r\n        public string Message =\u003E \u0022Member is not member of this group so he cannot leave it\u0022;\r\n    }\r\n}","mutants":[{"id":"170","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":16,"column":9},"end":{"line":19,"column":10}},"status":"Killed","static":false},{"id":"171","mutatorName":"Equality mutation","replacement":"this._members.SingleOrDefault(x =\u003E x.IsMember(memberId)) != null","location":{"start":{"line":21,"column":35},"end":{"line":21,"column":99}},"status":"Killed","static":false},{"id":"172","mutatorName":"Linq method mutation (SingleOrDefault() to Single())","replacement":"this._members.Single(x =\u003E x.IsMember(memberId)) ","location":{"start":{"line":21,"column":35},"end":{"line":21,"column":91}},"status":"Killed","static":false},{"id":"173","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":23,"column":34},"end":{"line":23,"column":92}},"status":"Survived","static":false}]},"MeetingMemberCommentLikes\\Events\\MeetingCommentLikedDomainEvent.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Comments;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingMemberCommentLikes.Events\r\n{\r\n    public class MeetingCommentLikedDomainEvent : DomainEventBase\r\n    {\r\n        public MeetingCommentId MeetingCommentId { get; }\r\n\r\n        public MemberId LikerId { get; }\r\n\r\n        public MeetingCommentLikedDomainEvent(MeetingCommentId meetingCommentId, MemberId likerId)\r\n        {\r\n            MeetingCommentId = meetingCommentId;\r\n            LikerId = likerId;\r\n        }\r\n    }\r\n}","mutants":[{"id":"174","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":14,"column":9},"end":{"line":17,"column":10}},"status":"Killed","static":false}]},"MeetingMemberCommentLikes\\Events\\MeetingCommentUnlikedDomainEvent.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Comments;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingMemberCommentLikes.Events\r\n{\r\n    public class MeetingCommentUnlikedDomainEvent : DomainEventBase\r\n    {\r\n        public MeetingCommentId MeetingCommentId { get; }\r\n\r\n        public MemberId LikerId { get; }\r\n\r\n        public MeetingCommentUnlikedDomainEvent(MeetingCommentId meetingCommentId, MemberId likerId)\r\n        {\r\n            MeetingCommentId = meetingCommentId;\r\n            LikerId = likerId;\r\n        }\r\n    }\r\n}","mutants":[{"id":"175","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":14,"column":9},"end":{"line":17,"column":10}},"status":"Killed","static":false}]},"MeetingMemberCommentLikes\\IMeetingMemberCommentLikesRepository.cs":{"language":"cs","source":"using System.Threading.Tasks;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Comments;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingMemberCommentLikes\r\n{\r\n    public interface IMeetingMemberCommentLikesRepository\r\n    {\r\n        Task AddAsync(MeetingMemberCommentLike meetingMemberCommentLike);\r\n\r\n        Task\u003CMeetingMemberCommentLike\u003E GetAsync(MemberId memberId, MeetingCommentId meetingCommentId);\r\n\r\n        Task\u003Cint\u003E CountMemberCommentLikesAsync(MemberId memberId, MeetingCommentId meetingCommentId);\r\n\r\n        void Remove(MeetingMemberCommentLike meetingMemberCommentLike);\r\n    }\r\n}","mutants":[]},"MeetingMemberCommentLikes\\MeetingMemberCommentLike.cs":{"language":"cs","source":"using System;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Comments;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingMemberCommentLikes.Events;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingMemberCommentLikes\r\n{\r\n    public class MeetingMemberCommentLike : Entity, IAggregateRoot\r\n    {\r\n        public MeetingMemberCommentLikeId Id { get; }\r\n\r\n        private MeetingCommentId _meetingCommentId;\r\n\r\n        private MemberId _memberId;\r\n\r\n        private MeetingMemberCommentLike()\r\n        {\r\n            // Only for EF.\r\n        }\r\n\r\n        private MeetingMemberCommentLike(MeetingCommentId meetingCommentId, MemberId memberId)\r\n        {\r\n            Id = new MeetingMemberCommentLikeId(Guid.NewGuid());\r\n            _meetingCommentId = meetingCommentId;\r\n            _memberId = memberId;\r\n\r\n            this.AddDomainEvent(new MeetingCommentLikedDomainEvent(meetingCommentId, memberId));\r\n        }\r\n\r\n        public void Remove()\r\n        {\r\n            this.AddDomainEvent(new MeetingCommentUnlikedDomainEvent(_meetingCommentId, _memberId));\r\n        }\r\n\r\n        public static MeetingMemberCommentLike Create(MeetingCommentId meetingCommentId, MemberId memberId)\r\n            =\u003E new MeetingMemberCommentLike(meetingCommentId, memberId);\r\n    }\r\n}","mutants":[{"id":"176","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":23,"column":9},"end":{"line":29,"column":10}},"status":"Killed","static":false},{"id":"177","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":28,"column":13},"end":{"line":28,"column":97}},"status":"Killed","static":false},{"id":"178","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":32,"column":9},"end":{"line":34,"column":10}},"status":"Killed","static":false},{"id":"179","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":33,"column":13},"end":{"line":33,"column":101}},"status":"Killed","static":false}]},"MeetingMemberCommentLikes\\MeetingMemberCommentLikeId.cs":{"language":"cs","source":"using System;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingMemberCommentLikes\r\n{\r\n    public class MeetingMemberCommentLikeId : TypedIdValueBase\r\n    {\r\n        public MeetingMemberCommentLikeId(Guid value)\r\n            : base(value)\r\n        {\r\n        }\r\n    }\r\n}","mutants":[]},"Meetings\\Events\\MeetingAttendeeAddedDomainEvent.cs":{"language":"cs","source":"using System;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Events\r\n{\r\n    public class MeetingAttendeeAddedDomainEvent : DomainEventBase\r\n    {\r\n        public MeetingAttendeeAddedDomainEvent(\r\n            MeetingId meetingId,\r\n            MemberId attendeeId,\r\n            DateTime rsvpDate,\r\n            string role,\r\n            int guestsNumber,\r\n            decimal? feeValue,\r\n            string feeCurrency)\r\n        {\r\n            MeetingId = meetingId;\r\n            AttendeeId = attendeeId;\r\n            RSVPDate = rsvpDate;\r\n            Role = role;\r\n            GuestsNumber = guestsNumber;\r\n            FeeValue = feeValue;\r\n            FeeCurrency = feeCurrency;\r\n        }\r\n\r\n        public MeetingId MeetingId { get; }\r\n\r\n        public MemberId AttendeeId { get; }\r\n\r\n        public DateTime RSVPDate { get; }\r\n\r\n        public string Role { get; }\r\n\r\n        public int GuestsNumber { get; }\r\n\r\n        public decimal? FeeValue { get; }\r\n\r\n        public string FeeCurrency { get; }\r\n    }\r\n}","mutants":[{"id":"180","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":17,"column":9},"end":{"line":25,"column":10}},"status":"Killed","static":false}]},"Meetings\\Events\\MeetingAttendeeFeePaidDomainEvent.cs":{"language":"cs","source":"using System;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Events\r\n{\r\n    public class MeetingAttendeeFeePaidDomainEvent : DomainEventBase\r\n    {\r\n        public MeetingAttendeeFeePaidDomainEvent(MeetingId meetingId, MemberId attendeeId)\r\n        {\r\n            MeetingId = meetingId;\r\n            AttendeeId = attendeeId;\r\n        }\r\n\r\n        public MeetingId MeetingId { get; }\r\n\r\n        public MemberId AttendeeId { get; }\r\n    }\r\n}","mutants":[{"id":"181","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":10,"column":9},"end":{"line":13,"column":10}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false}]},"Meetings\\Events\\MeetingAttendeeRemovedDomainEvent.cs":{"language":"cs","source":"using System;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Events\r\n{\r\n    public class MeetingAttendeeRemovedDomainEvent : DomainEventBase\r\n    {\r\n        public MeetingAttendeeRemovedDomainEvent(MemberId memberId, MeetingId meetingId, string reason)\r\n        {\r\n            MemberId = memberId;\r\n            MeetingId = meetingId;\r\n            Reason = reason;\r\n        }\r\n\r\n        public MemberId MemberId { get; }\r\n\r\n        public MeetingId MeetingId { get; }\r\n\r\n        public string Reason { get; }\r\n    }\r\n}","mutants":[{"id":"182","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":10,"column":9},"end":{"line":14,"column":10}},"status":"Killed","static":false}]},"Meetings\\Events\\MeetingCanceledDomainEvent.cs":{"language":"cs","source":"using System;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Events\r\n{\r\n    public class MeetingCanceledDomainEvent : DomainEventBase\r\n    {\r\n        public MeetingCanceledDomainEvent(MeetingId meetingId, MemberId cancelMemberId, DateTime cancelDate)\r\n        {\r\n            MeetingId = meetingId;\r\n            CancelMemberId = cancelMemberId;\r\n            CancelDate = cancelDate;\r\n        }\r\n\r\n        public MeetingId MeetingId { get; }\r\n\r\n        public MemberId CancelMemberId { get; }\r\n\r\n        public DateTime CancelDate { get; }\r\n    }\r\n}","mutants":[{"id":"183","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":10,"column":9},"end":{"line":14,"column":10}},"status":"Killed","static":false}]},"Meetings\\Events\\MeetingCreatedDomainEvent.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Events\r\n{\r\n    public class MeetingCreatedDomainEvent : DomainEventBase\r\n    {\r\n        public MeetingCreatedDomainEvent(MeetingId meetingId)\r\n        {\r\n            MeetingId = meetingId;\r\n        }\r\n\r\n        public MeetingId MeetingId { get; }\r\n    }\r\n}","mutants":[{"id":"184","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":8,"column":9},"end":{"line":10,"column":10}},"status":"Survived","static":false}]},"Meetings\\Events\\MeetingEditedDomainEvent.cs":{"language":"cs","source":"using System;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Events\r\n{\r\n    public class MeetingEditedDomainEvent : DomainEventBase\r\n    {\r\n        public MeetingEditedDomainEvent(Guid meetingId)\r\n        {\r\n            MeetingId = meetingId;\r\n        }\r\n\r\n        public Guid MeetingId { get; }\r\n    }\r\n}","mutants":[{"id":"185","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":9,"column":9},"end":{"line":11,"column":10}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false}]},"Meetings\\Events\\MeetingMainAttributesChangedDomainEvent.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Events\r\n{\r\n    public class MeetingMainAttributesChangedDomainEvent : DomainEventBase\r\n    {\r\n        public MeetingMainAttributesChangedDomainEvent(MeetingId meetingId)\r\n        {\r\n            MeetingId = meetingId;\r\n        }\r\n\r\n        public MeetingId MeetingId { get; }\r\n    }\r\n}","mutants":[{"id":"186","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":8,"column":9},"end":{"line":10,"column":10}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false}]},"Meetings\\Events\\MeetingNotAttendeeAddedDomainEvent.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Events\r\n{\r\n    public class MeetingNotAttendeeAddedDomainEvent : DomainEventBase\r\n    {\r\n        public MeetingId MeetingId { get; }\r\n\r\n        public MemberId MemberId { get; }\r\n\r\n        public MeetingNotAttendeeAddedDomainEvent(MeetingId meetingId, MemberId memberId)\r\n        {\r\n            MeetingId = meetingId;\r\n            MemberId = memberId;\r\n        }\r\n    }\r\n}","mutants":[{"id":"187","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":13,"column":9},"end":{"line":16,"column":10}},"status":"Killed","static":false}]},"Meetings\\Events\\MeetingWaitlistMemberAddedDomainEvent.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Events\r\n{\r\n    public class MeetingWaitlistMemberAddedDomainEvent : DomainEventBase\r\n    {\r\n        public MeetingWaitlistMemberAddedDomainEvent(MeetingId meetingId, MemberId memberId)\r\n        {\r\n            MeetingId = meetingId;\r\n            MemberId = memberId;\r\n        }\r\n\r\n        public MeetingId MeetingId { get; }\r\n\r\n        public MemberId MemberId { get; }\r\n    }\r\n}","mutants":[{"id":"188","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":9,"column":9},"end":{"line":12,"column":10}},"status":"Killed","static":false}]},"Meetings\\Events\\MemberSetAsAttendeeDomainEvent.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Events\r\n{\r\n    public class MemberSetAsAttendeeDomainEvent : DomainEventBase\r\n    {\r\n        public MemberSetAsAttendeeDomainEvent(MeetingId meetingId, MemberId hostId)\r\n        {\r\n            MeetingId = meetingId;\r\n            HostId = hostId;\r\n        }\r\n\r\n        public MeetingId MeetingId { get; }\r\n\r\n        public MemberId HostId { get; }\r\n    }\r\n}","mutants":[{"id":"189","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":9,"column":9},"end":{"line":12,"column":10}},"status":"Killed","static":false}]},"Meetings\\Events\\MemberSignedOffFromMeetingWaitlistDomainEvent.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Events\r\n{\r\n    public class MemberSignedOffFromMeetingWaitlistDomainEvent : DomainEventBase\r\n    {\r\n        public MemberSignedOffFromMeetingWaitlistDomainEvent(MeetingId meetingId, MemberId memberId)\r\n        {\r\n            MeetingId = meetingId;\r\n            MemberId = memberId;\r\n        }\r\n\r\n        public MeetingId MeetingId { get; }\r\n\r\n        public MemberId MemberId { get; }\r\n    }\r\n}","mutants":[{"id":"190","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":9,"column":9},"end":{"line":12,"column":10}},"status":"Killed","static":false}]},"Meetings\\Events\\NewMeetingHostSetDomainEvent.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Events\r\n{\r\n    public class NewMeetingHostSetDomainEvent : DomainEventBase\r\n    {\r\n        public NewMeetingHostSetDomainEvent(MeetingId meetingId, MemberId hostId)\r\n        {\r\n            MeetingId = meetingId;\r\n            HostId = hostId;\r\n        }\r\n\r\n        public MeetingId MeetingId { get; }\r\n\r\n        public MemberId HostId { get; }\r\n    }\r\n}","mutants":[{"id":"191","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":9,"column":9},"end":{"line":12,"column":10}},"status":"Killed","static":false}]},"Meetings\\IMeetingRepository.cs":{"language":"cs","source":"using System;\r\nusing System.Threading.Tasks;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings\r\n{\r\n    public interface IMeetingRepository\r\n    {\r\n        Task AddAsync(Meeting meeting);\r\n\r\n        Task\u003CMeeting\u003E GetByIdAsync(MeetingId id);\r\n    }\r\n}","mutants":[]},"Meetings\\Meeting.cs":{"language":"cs","source":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingCommentingConfigurations;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingComments;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Events;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Rules;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.SharedKernel;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings\r\n{\r\n    public class Meeting : Entity, IAggregateRoot\r\n    {\r\n        public MeetingId Id { get; private set; }\r\n\r\n        private MeetingGroupId _meetingGroupId;\r\n\r\n        private string _title;\r\n\r\n        private MeetingTerm _term;\r\n\r\n        private string _description;\r\n\r\n        private MeetingLocation _location;\r\n\r\n        private List\u003CMeetingAttendee\u003E _attendees;\r\n\r\n        private List\u003CMeetingNotAttendee\u003E _notAttendees;\r\n\r\n        private List\u003CMeetingWaitlistMember\u003E _waitlistMembers;\r\n\r\n        private MeetingLimits _meetingLimits;\r\n\r\n        private Term _rsvpTerm;\r\n\r\n        private MoneyValue _eventFee;\r\n\r\n        private MemberId _creatorId;\r\n\r\n        private DateTime _createDate;\r\n\r\n        private MemberId _changeMemberId;\r\n\r\n        private DateTime? _changeDate;\r\n\r\n        private DateTime? _cancelDate;\r\n\r\n        private MemberId _cancelMemberId;\r\n\r\n        private bool _isCanceled;\r\n\r\n        private Meeting()\r\n        {\r\n            _attendees = new List\u003CMeetingAttendee\u003E();\r\n            _notAttendees = new List\u003CMeetingNotAttendee\u003E();\r\n            _waitlistMembers = new List\u003CMeetingWaitlistMember\u003E();\r\n        }\r\n\r\n        internal static Meeting CreateNew(\r\n            MeetingGroupId meetingGroupId,\r\n            string title,\r\n            MeetingTerm term,\r\n            string description,\r\n            MeetingLocation location,\r\n            MeetingLimits meetingLimits,\r\n            Term rsvpTerm,\r\n            MoneyValue eventFee,\r\n            List\u003CMemberId\u003E hostsMembersIds,\r\n            MemberId creatorId)\r\n        {\r\n            return new Meeting(\r\n                meetingGroupId,\r\n                title,\r\n                term,\r\n                description,\r\n                location,\r\n                meetingLimits,\r\n                rsvpTerm,\r\n                eventFee,\r\n                hostsMembersIds,\r\n                creatorId);\r\n        }\r\n\r\n        private Meeting(\r\n            MeetingGroupId meetingGroupId,\r\n            string title,\r\n            MeetingTerm term,\r\n            string description,\r\n            MeetingLocation location,\r\n            MeetingLimits meetingLimits,\r\n            Term rsvpTerm,\r\n            MoneyValue eventFee,\r\n            List\u003CMemberId\u003E hostsMembersIds,\r\n            MemberId creatorId)\r\n        {\r\n            Id = new MeetingId(Guid.NewGuid());\r\n            _meetingGroupId = meetingGroupId;\r\n            _title = title;\r\n            _term = term;\r\n            _description = description;\r\n            _location = location;\r\n            _meetingLimits = meetingLimits;\r\n\r\n            this.SetRsvpTerm(rsvpTerm, _term);\r\n            _eventFee = eventFee;\r\n            _creatorId = creatorId;\r\n            _createDate = SystemClock.Now;\r\n\r\n            _attendees = new List\u003CMeetingAttendee\u003E();\r\n            _notAttendees = new List\u003CMeetingNotAttendee\u003E();\r\n            _waitlistMembers = new List\u003CMeetingWaitlistMember\u003E();\r\n\r\n            this.AddDomainEvent(new MeetingCreatedDomainEvent(this.Id));\r\n            var rsvpDate = SystemClock.Now;\r\n            if (hostsMembersIds.Any())\r\n            {\r\n                foreach (var hostMemberId in hostsMembersIds)\r\n                {\r\n                    _attendees.Add(MeetingAttendee.CreateNew(this.Id, hostMemberId, rsvpDate, MeetingAttendeeRole.Host, 0, MoneyValue.Undefined));\r\n                }\r\n            }\r\n            else\r\n            {\r\n                _attendees.Add(MeetingAttendee.CreateNew(this.Id, creatorId, rsvpDate, MeetingAttendeeRole.Host, 0, MoneyValue.Undefined));\r\n            }\r\n        }\r\n\r\n        public void ChangeMainAttributes(\r\n            string title,\r\n            MeetingTerm term,\r\n            string description,\r\n            MeetingLocation location,\r\n            MeetingLimits meetingLimits,\r\n            Term rsvpTerm,\r\n            MoneyValue eventFee,\r\n            MemberId modifyUserId)\r\n        {\r\n            this.CheckRule(new AttendeesLimitCannotBeChangedToSmallerThanActiveAttendeesRule(\r\n                meetingLimits,\r\n                this.GetAllActiveAttendeesWithGuestsNumber()));\r\n\r\n            _title = title;\r\n            _term = term;\r\n            _description = description;\r\n            _location = location;\r\n            _meetingLimits = meetingLimits;\r\n            this.SetRsvpTerm(rsvpTerm, _term);\r\n            _eventFee = eventFee;\r\n\r\n            _changeDate = SystemClock.Now;\r\n            _changeMemberId = modifyUserId;\r\n\r\n            this.AddDomainEvent(new MeetingMainAttributesChangedDomainEvent(this.Id));\r\n        }\r\n\r\n        public void AddAttendee(MeetingGroup meetingGroup, MemberId attendeeId, int guestsNumber)\r\n        {\r\n            this.CheckRule(new MeetingCannotBeChangedAfterStartRule(_term));\r\n\r\n            this.CheckRule(new AttendeeCanBeAddedOnlyInRsvpTermRule(_rsvpTerm));\r\n\r\n            this.CheckRule(new MeetingAttendeeMustBeAMemberOfGroupRule(attendeeId, meetingGroup));\r\n\r\n            this.CheckRule(new MemberCannotBeAnAttendeeOfMeetingMoreThanOnceRule(attendeeId, _attendees));\r\n\r\n            this.CheckRule(new MeetingGuestsNumberIsAboveLimitRule(_meetingLimits.GuestsLimit, guestsNumber));\r\n\r\n            this.CheckRule(new MeetingAttendeesNumberIsAboveLimitRule(_meetingLimits.AttendeesLimit, this.GetAllActiveAttendeesWithGuestsNumber(), guestsNumber));\r\n\r\n            var notAttendee = this.GetActiveNotAttendee(attendeeId);\r\n            notAttendee?.ChangeDecision();\r\n\r\n            _attendees.Add(MeetingAttendee.CreateNew(\r\n                this.Id,\r\n                attendeeId,\r\n                SystemClock.Now,\r\n                MeetingAttendeeRole.Attendee,\r\n                guestsNumber,\r\n                _eventFee));\r\n        }\r\n\r\n        public void AddNotAttendee(MemberId memberId)\r\n        {\r\n            this.CheckRule(new MeetingCannotBeChangedAfterStartRule(_term));\r\n\r\n            this.CheckRule(new MemberCannotBeNotAttendeeTwiceRule(_notAttendees, memberId));\r\n\r\n            _notAttendees.Add(MeetingNotAttendee.CreateNew(this.Id, memberId));\r\n\r\n            var attendee = this.GetActiveAttendee(memberId);\r\n\r\n            attendee?.ChangeDecision();\r\n\r\n            var nextWaitlistMember = _waitlistMembers\r\n                .Where(x =\u003E x.IsActive())\r\n                .OrderBy(x =\u003E x.SignUpDate)\r\n                .FirstOrDefault();\r\n            if (nextWaitlistMember != null)\r\n            {\r\n                _attendees.Add(MeetingAttendee.CreateNew(\r\n                    this.Id,\r\n                    nextWaitlistMember.MemberId,\r\n                    nextWaitlistMember.SignUpDate,\r\n                    MeetingAttendeeRole.Attendee,\r\n                    0,\r\n                    this._eventFee));\r\n                nextWaitlistMember.MarkIsMovedToAttendees();\r\n            }\r\n        }\r\n\r\n        public void ChangeNotAttendeeDecision(MemberId memberId)\r\n        {\r\n            this.CheckRule(new MeetingCannotBeChangedAfterStartRule(_term));\r\n\r\n            this.CheckRule(new NotActiveNotAttendeeCannotChangeDecisionRule(_notAttendees, memberId));\r\n\r\n            var notAttendee = _notAttendees.Single(x =\u003E x.IsActiveNotAttendee(memberId));\r\n\r\n            notAttendee.ChangeDecision();\r\n        }\r\n\r\n        public void SignUpMemberToWaitlist(MeetingGroup meetingGroup, MemberId memberId)\r\n        {\r\n            this.CheckRule(new MeetingCannotBeChangedAfterStartRule(_term));\r\n\r\n            this.CheckRule(new AttendeeCanBeAddedOnlyInRsvpTermRule(_rsvpTerm));\r\n\r\n            this.CheckRule(new MemberOnWaitlistMustBeAMemberOfGroupRule(meetingGroup, memberId, _attendees));\r\n\r\n            this.CheckRule(new MemberCannotBeMoreThanOnceOnMeetingWaitlistRule(_waitlistMembers, memberId));\r\n\r\n            _waitlistMembers.Add(MeetingWaitlistMember.CreateNew(this.Id, memberId));\r\n        }\r\n\r\n        public void SignOffMemberFromWaitlist(MemberId memberId)\r\n        {\r\n            this.CheckRule(new MeetingCannotBeChangedAfterStartRule(_term));\r\n\r\n            this.CheckRule(new NotActiveMemberOfWaitlistCannotBeSignedOffRule(_waitlistMembers, memberId));\r\n\r\n            var memberOnWaitlist = this.GetActiveMemberOnWaitlist(memberId);\r\n\r\n            memberOnWaitlist.SignOff();\r\n        }\r\n\r\n        public void SetHostRole(MeetingGroup meetingGroup, MemberId settingMemberId, MemberId newOrganizerId)\r\n        {\r\n            this.CheckRule(new MeetingCannotBeChangedAfterStartRule(_term));\r\n\r\n            this.CheckRule(new OnlyMeetingOrGroupOrganizerCanSetMeetingMemberRolesRule(settingMemberId, meetingGroup, _attendees));\r\n\r\n            this.CheckRule(new OnlyMeetingAttendeeCanHaveChangedRoleRule(_attendees, newOrganizerId));\r\n\r\n            var attendee = this.GetActiveAttendee(newOrganizerId);\r\n\r\n            attendee.SetAsHost();\r\n        }\r\n\r\n        public void SetAttendeeRole(MeetingGroup meetingGroup, MemberId settingMemberId, MemberId newOrganizerId)\r\n        {\r\n            this.CheckRule(new MeetingCannotBeChangedAfterStartRule(_term));\r\n\r\n            this.CheckRule(new OnlyMeetingOrGroupOrganizerCanSetMeetingMemberRolesRule(settingMemberId, meetingGroup, _attendees));\r\n\r\n            this.CheckRule(new OnlyMeetingAttendeeCanHaveChangedRoleRule(_attendees, newOrganizerId));\r\n\r\n            var attendee = this.GetActiveAttendee(newOrganizerId);\r\n\r\n            attendee.SetAsAttendee();\r\n\r\n            var meetingHostNumber = _attendees.Count(x =\u003E x.IsActiveHost());\r\n\r\n            this.CheckRule(new MeetingMustHaveAtLeastOneHostRule(meetingHostNumber));\r\n        }\r\n\r\n        public MeetingGroupId GetMeetingGroupId() =\u003E _meetingGroupId;\r\n\r\n        public void Cancel(MemberId cancelMemberId)\r\n        {\r\n            this.CheckRule(new MeetingCannotBeChangedAfterStartRule(_term));\r\n\r\n            if (!_isCanceled)\r\n            {\r\n                _isCanceled = true;\r\n                _cancelDate = SystemClock.Now;\r\n                _cancelMemberId = cancelMemberId;\r\n\r\n                this.AddDomainEvent(new MeetingCanceledDomainEvent(this.Id, _cancelMemberId, _cancelDate.Value));\r\n            }\r\n        }\r\n\r\n        public void RemoveAttendee(MemberId attendeeId, MemberId removingPersonId, string reason)\r\n        {\r\n            this.CheckRule(new MeetingCannotBeChangedAfterStartRule(_term));\r\n            this.CheckRule(new OnlyActiveAttendeeCanBeRemovedFromMeetingRule(_attendees, attendeeId));\r\n\r\n            var attendee = this.GetActiveAttendee(attendeeId);\r\n\r\n            attendee.Remove(removingPersonId, reason);\r\n        }\r\n\r\n        public void MarkAttendeeFeeAsPayed(MemberId memberId)\r\n        {\r\n            var attendee = GetActiveAttendee(memberId);\r\n\r\n            attendee.MarkFeeAsPayed();\r\n        }\r\n\r\n        public MeetingComment AddComment(MemberId authorId, string comment, MeetingGroup meetingGroup, MeetingCommentingConfiguration meetingCommentingConfiguration)\r\n            =\u003E MeetingComment.Create(\r\n                this.Id,\r\n                authorId,\r\n                comment,\r\n                meetingGroup,\r\n                meetingCommentingConfiguration);\r\n\r\n        public MeetingCommentingConfiguration CreateCommentingConfiguration()\r\n        {\r\n            return MeetingCommentingConfiguration.Create(this.Id);\r\n        }\r\n\r\n        private MeetingWaitlistMember GetActiveMemberOnWaitlist(MemberId memberId)\r\n        {\r\n            return _waitlistMembers.SingleOrDefault(x =\u003E x.IsActiveOnWaitList(memberId));\r\n        }\r\n\r\n        private MeetingAttendee GetActiveAttendee(MemberId attendeeId)\r\n        {\r\n            return _attendees.SingleOrDefault(x =\u003E x.IsActiveAttendee(attendeeId));\r\n        }\r\n\r\n        private MeetingNotAttendee GetActiveNotAttendee(MemberId memberId)\r\n        {\r\n            return _notAttendees.SingleOrDefault(x =\u003E x.IsActiveNotAttendee(memberId));\r\n        }\r\n\r\n        private int GetAllActiveAttendeesWithGuestsNumber()\r\n        {\r\n            return _attendees.Where(x =\u003E x.IsActive()).Sum(x =\u003E x.GetAttendeeWithGuestsNumber());\r\n        }\r\n\r\n        private void SetRsvpTerm(Term rsvpTerm, MeetingTerm meetingTerm)\r\n        {\r\n            if (!rsvpTerm.EndDate.HasValue || rsvpTerm.EndDate \u003E meetingTerm.StartDate)\r\n            {\r\n                _rsvpTerm = Term.CreateNewBetweenDates(rsvpTerm.StartDate, meetingTerm.StartDate);\r\n            }\r\n            else\r\n            {\r\n                _rsvpTerm = rsvpTerm;\r\n            }\r\n        }\r\n    }\r\n}\r\n","mutants":[{"id":"192","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":56,"column":9},"end":{"line":60,"column":10}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false},{"id":"193","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":73,"column":9},"end":{"line":85,"column":10}},"status":"Killed","static":false},{"id":"194","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":98,"column":9},"end":{"line":129,"column":10}},"status":"Killed","static":false},{"id":"195","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":107,"column":13},"end":{"line":107,"column":47}},"status":"Killed","static":false},{"id":"196","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":116,"column":13},"end":{"line":116,"column":73}},"status":"Killed","static":false},{"id":"197","mutatorName":"Negate expression","replacement":"!(hostsMembersIds.Any())","location":{"start":{"line":118,"column":17},"end":{"line":118,"column":38}},"status":"Killed","static":false},{"id":"198","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":119,"column":13},"end":{"line":124,"column":14}},"status":"Killed","static":false},{"id":"199","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":121,"column":17},"end":{"line":123,"column":18}},"status":"Killed","static":false},{"id":"200","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":122,"column":21},"end":{"line":122,"column":147}},"status":"Killed","static":false},{"id":"201","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":126,"column":13},"end":{"line":128,"column":14}},"status":"Killed","static":false},{"id":"202","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":127,"column":17},"end":{"line":127,"column":140}},"status":"Killed","static":false},{"id":"203","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":140,"column":9},"end":{"line":157,"column":10}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false},{"id":"204","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":141,"column":13},"end":{"line":143,"column":64}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false},{"id":"205","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":150,"column":13},"end":{"line":150,"column":47}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false},{"id":"206","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":156,"column":13},"end":{"line":156,"column":87}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false},{"id":"207","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":160,"column":9},"end":{"line":183,"column":10}},"status":"Killed","static":false},{"id":"208","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":161,"column":13},"end":{"line":161,"column":77}},"status":"Killed","static":false},{"id":"209","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":163,"column":13},"end":{"line":163,"column":81}},"status":"Killed","static":false},{"id":"210","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":165,"column":13},"end":{"line":165,"column":99}},"status":"Killed","static":false},{"id":"211","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":167,"column":13},"end":{"line":167,"column":107}},"status":"Killed","static":false},{"id":"212","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":169,"column":13},"end":{"line":169,"column":111}},"status":"Killed","static":false},{"id":"213","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":171,"column":13},"end":{"line":171,"column":163}},"status":"Killed","static":false},{"id":"214","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":174,"column":13},"end":{"line":174,"column":43}},"status":"Killed","static":false},{"id":"215","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":176,"column":13},"end":{"line":182,"column":29}},"status":"Killed","static":false},{"id":"216","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":186,"column":9},"end":{"line":212,"column":10}},"status":"Killed","static":false},{"id":"217","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":187,"column":13},"end":{"line":187,"column":77}},"status":"Killed","static":false},{"id":"218","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":189,"column":13},"end":{"line":189,"column":93}},"status":"Killed","static":false},{"id":"219","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":191,"column":13},"end":{"line":191,"column":80}},"status":"Killed","static":false},{"id":"220","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":195,"column":13},"end":{"line":195,"column":40}},"status":"Killed","static":false},{"id":"221","mutatorName":"Linq method mutation (FirstOrDefault() to First())","replacement":"_waitlistMembers\r\n                .Where(x =\u003E x.IsActive())\r\n                .OrderBy(x =\u003E x.SignUpDate)\r\n                .First()","location":{"start":{"line":197,"column":38},"end":{"line":200,"column":34}},"status":"Killed","static":false},{"id":"222","mutatorName":"Linq method mutation (OrderBy() to OrderByDescending())","replacement":"_waitlistMembers\r\n                .Where(x =\u003E x.IsActive())\r\n                .OrderByDescending(x =\u003E x.SignUpDate)\r\n                .FirstOrDefault()","location":{"start":{"line":197,"column":38},"end":{"line":200,"column":34}},"status":"Survived","static":false},{"id":"223","mutatorName":"Equality mutation","replacement":"nextWaitlistMember == null","location":{"start":{"line":201,"column":17},"end":{"line":201,"column":43}},"status":"Killed","static":false},{"id":"224","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":202,"column":13},"end":{"line":211,"column":14}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false},{"id":"225","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":203,"column":17},"end":{"line":209,"column":38}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false},{"id":"226","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":210,"column":17},"end":{"line":210,"column":61}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false},{"id":"227","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":215,"column":9},"end":{"line":223,"column":10}},"status":"Killed","static":false},{"id":"228","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":216,"column":13},"end":{"line":216,"column":77}},"status":"Killed","static":false},{"id":"229","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":218,"column":13},"end":{"line":218,"column":103}},"status":"Killed","static":false},{"id":"230","mutatorName":"Linq method mutation (Single() to SingleOrDefault())","replacement":"_notAttendees.SingleOrDefault(x =\u003E x.IsActiveNotAttendee(memberId))","location":{"start":{"line":220,"column":31},"end":{"line":220,"column":89}},"status":"Survived","static":false},{"id":"231","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":222,"column":13},"end":{"line":222,"column":42}},"status":"Killed","static":false},{"id":"232","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":226,"column":9},"end":{"line":236,"column":10}},"status":"Killed","static":false},{"id":"233","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":227,"column":13},"end":{"line":227,"column":77}},"status":"Killed","static":false},{"id":"234","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":229,"column":13},"end":{"line":229,"column":81}},"status":"Killed","static":false},{"id":"235","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":231,"column":13},"end":{"line":231,"column":110}},"status":"Killed","static":false},{"id":"236","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":233,"column":13},"end":{"line":233,"column":109}},"status":"Killed","static":false},{"id":"237","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":235,"column":13},"end":{"line":235,"column":86}},"status":"Killed","static":false},{"id":"238","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":239,"column":9},"end":{"line":247,"column":10}},"status":"Killed","static":false},{"id":"239","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":240,"column":13},"end":{"line":240,"column":77}},"status":"Killed","static":false},{"id":"240","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":242,"column":13},"end":{"line":242,"column":108}},"status":"Killed","static":false},{"id":"241","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":246,"column":13},"end":{"line":246,"column":40}},"status":"Killed","static":false},{"id":"242","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":250,"column":9},"end":{"line":260,"column":10}},"status":"Killed","static":false},{"id":"243","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":251,"column":13},"end":{"line":251,"column":77}},"status":"Killed","static":false},{"id":"244","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":253,"column":13},"end":{"line":253,"column":132}},"status":"Killed","static":false},{"id":"245","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":255,"column":13},"end":{"line":255,"column":103}},"status":"Survived","static":false},{"id":"246","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":259,"column":13},"end":{"line":259,"column":34}},"status":"Killed","static":false},{"id":"247","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":263,"column":9},"end":{"line":277,"column":10}},"status":"Killed","static":false},{"id":"248","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":264,"column":13},"end":{"line":264,"column":77}},"status":"Killed","static":false},{"id":"249","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":266,"column":13},"end":{"line":266,"column":132}},"status":"Killed","static":false},{"id":"250","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":268,"column":13},"end":{"line":268,"column":103}},"status":"Survived","static":false},{"id":"251","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":272,"column":13},"end":{"line":272,"column":38}},"status":"Killed","static":false},{"id":"252","mutatorName":"Linq method mutation (Count() to Sum())","replacement":"_attendees.Sum(x =\u003E x.IsActiveHost())","location":{"start":{"line":274,"column":37},"end":{"line":274,"column":76}},"status":"CompileError","statusReason":"Mutant caused compile errors","static":false},{"id":"253","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":276,"column":13},"end":{"line":276,"column":86}},"status":"Killed","static":false},{"id":"254","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":282,"column":9},"end":{"line":293,"column":10}},"status":"Killed","static":false},{"id":"255","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":283,"column":13},"end":{"line":283,"column":77}},"status":"Killed","static":false},{"id":"256","mutatorName":"LogicalNotExpression to un-LogicalNotExpression mutation","replacement":"_isCanceled","location":{"start":{"line":285,"column":17},"end":{"line":285,"column":29}},"status":"Killed","static":false},{"id":"257","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":286,"column":13},"end":{"line":292,"column":14}},"status":"Killed","static":false},{"id":"258","mutatorName":"Boolean mutation","replacement":"false","location":{"start":{"line":287,"column":31},"end":{"line":287,"column":35}},"status":"Survived","static":false},{"id":"259","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":291,"column":17},"end":{"line":291,"column":114}},"status":"Killed","static":false},{"id":"260","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":296,"column":9},"end":{"line":303,"column":10}},"status":"Killed","static":false},{"id":"261","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":297,"column":13},"end":{"line":297,"column":77}},"status":"Killed","static":false},{"id":"262","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":298,"column":13},"end":{"line":298,"column":103}},"status":"Killed","static":false},{"id":"263","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":302,"column":13},"end":{"line":302,"column":55}},"status":"Killed","static":false},{"id":"264","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":306,"column":9},"end":{"line":310,"column":10}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false},{"id":"265","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":309,"column":13},"end":{"line":309,"column":39}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false},{"id":"266","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":321,"column":9},"end":{"line":323,"column":10}},"status":"Killed","static":false},{"id":"267","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":326,"column":9},"end":{"line":328,"column":10}},"status":"Killed","static":false},{"id":"268","mutatorName":"Linq method mutation (SingleOrDefault() to Single())","replacement":"_waitlistMembers.Single(x =\u003E x.IsActiveOnWaitList(memberId))","location":{"start":{"line":327,"column":20},"end":{"line":327,"column":89}},"status":"Survived","static":false},{"id":"269","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":331,"column":9},"end":{"line":333,"column":10}},"status":"Killed","static":false},{"id":"270","mutatorName":"Linq method mutation (SingleOrDefault() to Single())","replacement":"_attendees.Single(x =\u003E x.IsActiveAttendee(attendeeId))","location":{"start":{"line":332,"column":20},"end":{"line":332,"column":83}},"status":"Killed","static":false},{"id":"271","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":336,"column":9},"end":{"line":338,"column":10}},"status":"Killed","static":false},{"id":"272","mutatorName":"Linq method mutation (SingleOrDefault() to Single())","replacement":"_notAttendees.Single(x =\u003E x.IsActiveNotAttendee(memberId))","location":{"start":{"line":337,"column":20},"end":{"line":337,"column":87}},"status":"Killed","static":false},{"id":"273","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":341,"column":9},"end":{"line":343,"column":10}},"status":"Killed","static":false},{"id":"274","mutatorName":"Linq method mutation (Sum() to Max())","replacement":"_attendees.Where(x =\u003E x.IsActive()).Max(x =\u003E x.GetAttendeeWithGuestsNumber())","location":{"start":{"line":342,"column":20},"end":{"line":342,"column":97}},"status":"Killed","static":false},{"id":"275","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":346,"column":9},"end":{"line":355,"column":10}},"status":"Killed","static":false},{"id":"276","mutatorName":"Logical mutation","replacement":"!rsvpTerm.EndDate.HasValue \u0026\u0026 rsvpTerm.EndDate \u003E meetingTerm.StartDate","location":{"start":{"line":347,"column":17},"end":{"line":347,"column":87}},"status":"Survived","static":false},{"id":"277","mutatorName":"Negate expression","replacement":"!(!rsvpTerm.EndDate.HasValue || rsvpTerm.EndDate \u003E meetingTerm.StartDate)","location":{"start":{"line":347,"column":17},"end":{"line":347,"column":87}},"status":"Killed","static":false},{"id":"278","mutatorName":"LogicalNotExpression to un-LogicalNotExpression mutation","replacement":"rsvpTerm.EndDate.HasValue ","location":{"start":{"line":347,"column":17},"end":{"line":347,"column":43}},"status":"Killed","static":false},{"id":"279","mutatorName":"Equality mutation","replacement":"rsvpTerm.EndDate \u003C meetingTerm.StartDate","location":{"start":{"line":347,"column":47},"end":{"line":347,"column":87}},"status":"Killed","static":false},{"id":"280","mutatorName":"Equality mutation","replacement":"rsvpTerm.EndDate \u003E= meetingTerm.StartDate","location":{"start":{"line":347,"column":47},"end":{"line":347,"column":87}},"status":"Survived","static":false},{"id":"281","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":348,"column":13},"end":{"line":350,"column":14}},"status":"Killed","static":false},{"id":"282","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":352,"column":13},"end":{"line":354,"column":14}},"status":"Killed","static":false}]},"Meetings\\MeetingAttendee.cs":{"language":"cs","source":"using System;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups.Events;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Events;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Rules;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.SharedKernel;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings\r\n{\r\n    public class MeetingAttendee : Entity\r\n    {\r\n        internal MemberId AttendeeId { get; private set; }\r\n\r\n        internal MeetingId MeetingId { get; private set; }\r\n\r\n        private DateTime _decisionDate;\r\n\r\n        private MeetingAttendeeRole _role;\r\n\r\n        private int _guestsNumber;\r\n\r\n        private bool _decisionChanged;\r\n\r\n        private DateTime? _decisionChangeDate;\r\n\r\n        private DateTime? _removedDate;\r\n\r\n        private MemberId _removingMemberId;\r\n\r\n        private string _removingReason;\r\n\r\n        private bool _isRemoved;\r\n\r\n        private MoneyValue _fee;\r\n\r\n        private bool _isFeePaid;\r\n\r\n        private MeetingAttendee()\r\n        {\r\n        }\r\n\r\n        internal static MeetingAttendee CreateNew(\r\n            MeetingId meetingId,\r\n            MemberId attendeeId,\r\n            DateTime decisionDate,\r\n            MeetingAttendeeRole role,\r\n            int guestsNumber,\r\n            MoneyValue eventFee)\r\n        {\r\n            return new MeetingAttendee(meetingId, attendeeId, decisionDate, role, guestsNumber, eventFee);\r\n        }\r\n\r\n        private MeetingAttendee(\r\n            MeetingId meetingId,\r\n            MemberId attendeeId,\r\n            DateTime decisionDate,\r\n            MeetingAttendeeRole role,\r\n            int guestsNumber,\r\n            MoneyValue eventFee)\r\n        {\r\n            this.AttendeeId = attendeeId;\r\n            this.MeetingId = meetingId;\r\n            this._decisionDate = decisionDate;\r\n            this._role = role;\r\n            _guestsNumber = guestsNumber;\r\n            _decisionChanged = false;\r\n            _isFeePaid = false;\r\n\r\n            if (eventFee != MoneyValue.Undefined)\r\n            {\r\n                _fee = (1 \u002B guestsNumber) * eventFee;\r\n            }\r\n            else\r\n            {\r\n                _fee = MoneyValue.Undefined;\r\n            }\r\n\r\n            this.AddDomainEvent(new MeetingAttendeeAddedDomainEvent(\r\n                this.MeetingId,\r\n                AttendeeId,\r\n                decisionDate,\r\n                role.Value,\r\n                guestsNumber,\r\n                _fee.Value,\r\n                _fee.Currency));\r\n        }\r\n\r\n        internal void ChangeDecision()\r\n        {\r\n            _decisionChanged = true;\r\n            _decisionChangeDate = SystemClock.Now;\r\n\r\n            this.AddDomainEvent(new MeetingAttendeeChangedDecisionDomainEvent(this.AttendeeId, this.MeetingId));\r\n        }\r\n\r\n        internal bool IsActiveAttendee(MemberId attendeeId)\r\n        {\r\n            return this.AttendeeId == attendeeId \u0026\u0026 !_decisionChanged;\r\n        }\r\n\r\n        internal bool IsActive()\r\n        {\r\n            return !_decisionChangeDate.HasValue \u0026\u0026 !_isRemoved;\r\n        }\r\n\r\n        internal bool IsActiveHost()\r\n        {\r\n            return this.IsActive() \u0026\u0026 _role == MeetingAttendeeRole.Host;\r\n        }\r\n\r\n        internal int GetAttendeeWithGuestsNumber()\r\n        {\r\n            return 1 \u002B _guestsNumber;\r\n        }\r\n\r\n        internal void SetAsHost()\r\n        {\r\n            _role = MeetingAttendeeRole.Host;\r\n\r\n            this.AddDomainEvent(new NewMeetingHostSetDomainEvent(this.MeetingId, this.AttendeeId));\r\n        }\r\n\r\n        internal void SetAsAttendee()\r\n        {\r\n            this.CheckRule(new MemberCannotHaveSetAttendeeRoleMoreThanOnceRule(_role));\r\n            _role = MeetingAttendeeRole.Attendee;\r\n\r\n            this.AddDomainEvent(new MemberSetAsAttendeeDomainEvent(this.MeetingId, this.AttendeeId));\r\n        }\r\n\r\n        internal void Remove(MemberId removingMemberId, string reason)\r\n        {\r\n            this.CheckRule(new ReasonOfRemovingAttendeeFromMeetingMustBeProvidedRule(reason));\r\n\r\n            _isRemoved = true;\r\n            _removedDate = SystemClock.Now;\r\n            _removingReason = reason;\r\n            _removingMemberId = removingMemberId;\r\n\r\n            this.AddDomainEvent(new MeetingAttendeeRemovedDomainEvent(this.AttendeeId, this.MeetingId, reason));\r\n        }\r\n\r\n        internal void MarkFeeAsPayed()\r\n        {\r\n            _isFeePaid = true;\r\n\r\n            this.AddDomainEvent(new MeetingAttendeeFeePaidDomainEvent(this.MeetingId, this.AttendeeId));\r\n        }\r\n    }\r\n}","mutants":[{"id":"283","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":50,"column":9},"end":{"line":52,"column":10}},"status":"Killed","static":false},{"id":"284","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":61,"column":9},"end":{"line":87,"column":10}},"status":"Killed","static":false},{"id":"285","mutatorName":"Boolean mutation","replacement":"true","location":{"start":{"line":67,"column":32},"end":{"line":67,"column":37}},"status":"Killed","static":false},{"id":"286","mutatorName":"Boolean mutation","replacement":"true","location":{"start":{"line":68,"column":26},"end":{"line":68,"column":31}},"status":"Survived","static":false},{"id":"287","mutatorName":"Equality mutation","replacement":"eventFee == MoneyValue.Undefined","location":{"start":{"line":70,"column":17},"end":{"line":70,"column":49}},"status":"Survived","static":false},{"id":"288","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":71,"column":13},"end":{"line":73,"column":14}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false},{"id":"289","mutatorName":"Arithmetic mutation","replacement":"(1 \u002B guestsNumber) / eventFee","location":{"start":{"line":72,"column":24},"end":{"line":72,"column":53}},"status":"CompileError","statusReason":"Mutant caused compile errors","static":false},{"id":"290","mutatorName":"Arithmetic mutation","replacement":"1 - guestsNumber","location":{"start":{"line":72,"column":25},"end":{"line":72,"column":41}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false},{"id":"291","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":75,"column":13},"end":{"line":77,"column":14}},"status":"Killed","static":false},{"id":"292","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":79,"column":13},"end":{"line":86,"column":33}},"status":"Killed","static":false},{"id":"293","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":90,"column":9},"end":{"line":95,"column":10}},"status":"Killed","static":false},{"id":"294","mutatorName":"Boolean mutation","replacement":"false","location":{"start":{"line":91,"column":32},"end":{"line":91,"column":36}},"status":"Survived","static":false},{"id":"295","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":94,"column":13},"end":{"line":94,"column":113}},"status":"Killed","static":false},{"id":"296","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":98,"column":9},"end":{"line":100,"column":10}},"status":"Killed","static":false},{"id":"297","mutatorName":"Logical mutation","replacement":"this.AttendeeId == attendeeId || !_decisionChanged","location":{"start":{"line":99,"column":20},"end":{"line":99,"column":70}},"status":"Killed","static":false},{"id":"298","mutatorName":"Equality mutation","replacement":"this.AttendeeId != attendeeId ","location":{"start":{"line":99,"column":20},"end":{"line":99,"column":49}},"status":"Killed","static":false},{"id":"299","mutatorName":"LogicalNotExpression to un-LogicalNotExpression mutation","replacement":"_decisionChanged","location":{"start":{"line":99,"column":53},"end":{"line":99,"column":70}},"status":"Killed","static":false},{"id":"300","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":103,"column":9},"end":{"line":105,"column":10}},"status":"Killed","static":false},{"id":"301","mutatorName":"Logical mutation","replacement":"!_decisionChangeDate.HasValue || !_isRemoved","location":{"start":{"line":104,"column":20},"end":{"line":104,"column":64}},"status":"Survived","static":false},{"id":"302","mutatorName":"LogicalNotExpression to un-LogicalNotExpression mutation","replacement":"_decisionChangeDate.HasValue ","location":{"start":{"line":104,"column":20},"end":{"line":104,"column":49}},"status":"Killed","static":false},{"id":"303","mutatorName":"LogicalNotExpression to un-LogicalNotExpression mutation","replacement":"_isRemoved","location":{"start":{"line":104,"column":53},"end":{"line":104,"column":64}},"status":"Killed","static":false},{"id":"304","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":108,"column":9},"end":{"line":110,"column":10}},"status":"Killed","static":false},{"id":"305","mutatorName":"Logical mutation","replacement":"this.IsActive() || _role == MeetingAttendeeRole.Host","location":{"start":{"line":109,"column":20},"end":{"line":109,"column":72}},"status":"Killed","static":false},{"id":"306","mutatorName":"Equality mutation","replacement":"_role != MeetingAttendeeRole.Host","location":{"start":{"line":109,"column":39},"end":{"line":109,"column":72}},"status":"Killed","static":false},{"id":"307","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":113,"column":9},"end":{"line":115,"column":10}},"status":"Killed","static":false},{"id":"308","mutatorName":"Arithmetic mutation","replacement":"1 - _guestsNumber","location":{"start":{"line":114,"column":20},"end":{"line":114,"column":37}},"status":"Killed","static":false},{"id":"309","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":118,"column":9},"end":{"line":122,"column":10}},"status":"Killed","static":false},{"id":"310","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":121,"column":13},"end":{"line":121,"column":100}},"status":"Killed","static":false},{"id":"311","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":125,"column":9},"end":{"line":130,"column":10}},"status":"Killed","static":false},{"id":"312","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":126,"column":13},"end":{"line":126,"column":88}},"status":"Killed","static":false},{"id":"313","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":129,"column":13},"end":{"line":129,"column":102}},"status":"Killed","static":false},{"id":"314","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":133,"column":9},"end":{"line":142,"column":10}},"status":"Killed","static":false},{"id":"315","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":134,"column":13},"end":{"line":134,"column":95}},"status":"Killed","static":false},{"id":"316","mutatorName":"Boolean mutation","replacement":"false","location":{"start":{"line":136,"column":26},"end":{"line":136,"column":30}},"status":"Survived","static":false},{"id":"317","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":141,"column":13},"end":{"line":141,"column":113}},"status":"Killed","static":false},{"id":"318","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":145,"column":9},"end":{"line":149,"column":10}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false},{"id":"319","mutatorName":"Boolean mutation","replacement":"false","location":{"start":{"line":146,"column":26},"end":{"line":146,"column":30}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false},{"id":"320","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":148,"column":13},"end":{"line":148,"column":105}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false}]},"Meetings\\MeetingAttendeeRole.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings\r\n{\r\n    public class MeetingAttendeeRole : ValueObject\r\n    {\r\n        public static MeetingAttendeeRole Host =\u003E new MeetingAttendeeRole(\u0022Host\u0022);\r\n\r\n        public static MeetingAttendeeRole Attendee =\u003E new MeetingAttendeeRole(\u0022Attendee\u0022);\r\n\r\n        public string Value { get; }\r\n\r\n        private MeetingAttendeeRole(string value)\r\n        {\r\n            this.Value = value;\r\n        }\r\n    }\r\n}","mutants":[{"id":"321","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":7,"column":75},"end":{"line":7,"column":81}},"status":"Survived","static":false},{"id":"322","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":9,"column":79},"end":{"line":9,"column":89}},"status":"Survived","static":false},{"id":"323","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":14,"column":9},"end":{"line":16,"column":10}},"status":"Killed","static":false}]},"Meetings\\MeetingId.cs":{"language":"cs","source":"using System;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings\r\n{\r\n    public class MeetingId : TypedIdValueBase\r\n    {\r\n        public MeetingId(Guid value)\r\n            : base(value)\r\n        {\r\n        }\r\n    }\r\n}","mutants":[]},"Meetings\\MeetingLimits.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Rules;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings\r\n{\r\n    public class MeetingLimits : ValueObject\r\n    {\r\n        public int? AttendeesLimit { get; }\r\n\r\n        public int GuestsLimit { get; }\r\n\r\n        private MeetingLimits(int? attendeesLimit, int guestsLimit)\r\n        {\r\n            AttendeesLimit = attendeesLimit;\r\n            GuestsLimit = guestsLimit;\r\n        }\r\n\r\n        public static MeetingLimits Create(int? attendeesLimit, int guestsLimit)\r\n        {\r\n            CheckRule(new MeetingAttendeesLimitCannotBeNegativeRule(attendeesLimit));\r\n\r\n            CheckRule(new MeetingGuestsLimitCannotBeNegativeRule(guestsLimit));\r\n\r\n            CheckRule(new MeetingAttendeesLimitMustBeGreaterThanGuestsLimitRule(attendeesLimit, guestsLimit));\r\n\r\n            return new MeetingLimits(attendeesLimit, guestsLimit);\r\n        }\r\n    }\r\n}","mutants":[{"id":"324","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":13,"column":9},"end":{"line":16,"column":10}},"status":"Killed","static":false},{"id":"325","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":19,"column":9},"end":{"line":27,"column":10}},"status":"Killed","static":false},{"id":"326","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":20,"column":13},"end":{"line":20,"column":86}},"status":"Killed","static":false},{"id":"327","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":22,"column":13},"end":{"line":22,"column":80}},"status":"Killed","static":false},{"id":"328","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":24,"column":13},"end":{"line":24,"column":111}},"status":"Killed","static":false}]},"Meetings\\MeetingLocation.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings\r\n{\r\n    public class MeetingLocation : ValueObject\r\n    {\r\n        public static MeetingLocation CreateNew(string name, string address, string postalCode, string city)\r\n        {\r\n            return new MeetingLocation(name, address, postalCode, city);\r\n        }\r\n\r\n        private MeetingLocation(string name, string address, string postalCode, string city)\r\n        {\r\n            Name = name;\r\n            Address = address;\r\n            PostalCode = postalCode;\r\n            City = city;\r\n        }\r\n\r\n        public string Name { get; }\r\n\r\n        public string Address { get; }\r\n\r\n        public string PostalCode { get; }\r\n\r\n        public string City { get; }\r\n    }\r\n}","mutants":[{"id":"329","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":8,"column":9},"end":{"line":10,"column":10}},"status":"Survived","static":false},{"id":"330","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":13,"column":9},"end":{"line":18,"column":10}},"status":"Survived","static":false}]},"Meetings\\MeetingNotAttendee.cs":{"language":"cs","source":"using System;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups.Events;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Events;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.SharedKernel;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings\r\n{\r\n    public class MeetingNotAttendee : Entity\r\n    {\r\n        internal MemberId MemberId { get; private set; }\r\n\r\n        internal MeetingId MeetingId { get; private set; }\r\n\r\n        private DateTime _decisionDate;\r\n\r\n        private bool _decisionChanged;\r\n\r\n        private DateTime? _decisionChangeDate;\r\n\r\n        private MeetingNotAttendee()\r\n        {\r\n        }\r\n\r\n        private MeetingNotAttendee(MeetingId meetingId, MemberId memberId)\r\n        {\r\n            this.MemberId = memberId;\r\n            this.MeetingId = meetingId;\r\n            _decisionDate = DateTime.UtcNow;\r\n\r\n            this.AddDomainEvent(new MeetingNotAttendeeAddedDomainEvent(this.MeetingId, this.MemberId));\r\n        }\r\n\r\n        internal static MeetingNotAttendee CreateNew(MeetingId meetingId, MemberId memberId)\r\n        {\r\n            return new MeetingNotAttendee(meetingId, memberId);\r\n        }\r\n\r\n        internal bool IsActiveNotAttendee(MemberId memberId)\r\n        {\r\n            return !this._decisionChanged \u0026\u0026 this.MemberId == memberId;\r\n        }\r\n\r\n        internal void ChangeDecision()\r\n        {\r\n            _decisionChanged = true;\r\n            _decisionChangeDate = SystemClock.Now;\r\n\r\n            this.AddDomainEvent(new MeetingNotAttendeeChangedDecisionDomainEvent(this.MemberId, this.MeetingId));\r\n        }\r\n    }\r\n}","mutants":[{"id":"331","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":27,"column":9},"end":{"line":33,"column":10}},"status":"Killed","static":false},{"id":"332","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":32,"column":13},"end":{"line":32,"column":104}},"status":"Killed","static":false},{"id":"333","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":36,"column":9},"end":{"line":38,"column":10}},"status":"Killed","static":false},{"id":"334","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":41,"column":9},"end":{"line":43,"column":10}},"status":"Killed","static":false},{"id":"335","mutatorName":"Logical mutation","replacement":"!this._decisionChanged || this.MemberId == memberId","location":{"start":{"line":42,"column":20},"end":{"line":42,"column":71}},"status":"Survived","static":false},{"id":"336","mutatorName":"LogicalNotExpression to un-LogicalNotExpression mutation","replacement":"this._decisionChanged ","location":{"start":{"line":42,"column":20},"end":{"line":42,"column":42}},"status":"Killed","static":false},{"id":"337","mutatorName":"Equality mutation","replacement":"this.MemberId != memberId","location":{"start":{"line":42,"column":46},"end":{"line":42,"column":71}},"status":"Killed","static":false},{"id":"338","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":46,"column":9},"end":{"line":51,"column":10}},"status":"Killed","static":false},{"id":"339","mutatorName":"Boolean mutation","replacement":"false","location":{"start":{"line":47,"column":32},"end":{"line":47,"column":36}},"status":"Survived","static":false},{"id":"340","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":50,"column":13},"end":{"line":50,"column":114}},"status":"Killed","static":false}]},"Meetings\\MeetingTerm.cs":{"language":"cs","source":"using System;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.SharedKernel;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings\r\n{\r\n    public class MeetingTerm : ValueObject\r\n    {\r\n        public DateTime StartDate { get; }\r\n\r\n        public DateTime EndDate { get; }\r\n\r\n        public static MeetingTerm CreateNewBetweenDates(DateTime startDate, DateTime endDate)\r\n        {\r\n            return new MeetingTerm(startDate, endDate);\r\n        }\r\n\r\n        private MeetingTerm(DateTime startDate, DateTime endDate)\r\n        {\r\n            this.StartDate = startDate;\r\n            this.EndDate = endDate;\r\n        }\r\n\r\n        internal bool IsAfterStart()\r\n        {\r\n            return SystemClock.Now \u003E this.StartDate;\r\n        }\r\n    }\r\n}","mutants":[{"id":"341","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":14,"column":9},"end":{"line":16,"column":10}},"status":"Killed","static":false},{"id":"342","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":19,"column":9},"end":{"line":22,"column":10}},"status":"Killed","static":false},{"id":"343","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":25,"column":9},"end":{"line":27,"column":10}},"status":"Killed","static":false},{"id":"344","mutatorName":"Equality mutation","replacement":"SystemClock.Now \u003C this.StartDate","location":{"start":{"line":26,"column":20},"end":{"line":26,"column":52}},"status":"Killed","static":false},{"id":"345","mutatorName":"Equality mutation","replacement":"SystemClock.Now \u003E= this.StartDate","location":{"start":{"line":26,"column":20},"end":{"line":26,"column":52}},"status":"Survived","static":false}]},"Meetings\\MeetingWaitlistMember.cs":{"language":"cs","source":"using System;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Events;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.SharedKernel;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings\r\n{\r\n    public class MeetingWaitlistMember : Entity\r\n    {\r\n        internal MemberId MemberId { get; private set; }\r\n\r\n        internal MeetingId MeetingId { get; private set; }\r\n\r\n        internal DateTime SignUpDate { get; private set; }\r\n\r\n        private bool _isSignedOff;\r\n\r\n        private DateTime? _signOffDate;\r\n\r\n        private bool _isMovedToAttendees;\r\n\r\n        private DateTime? _movedToAttendeesDate;\r\n\r\n        private MeetingWaitlistMember()\r\n        {\r\n        }\r\n\r\n        private MeetingWaitlistMember(MeetingId meetingId, MemberId memberId)\r\n        {\r\n            this.MemberId = memberId;\r\n            this.MeetingId = meetingId;\r\n            this.SignUpDate = SystemClock.Now;\r\n            _isMovedToAttendees = false;\r\n\r\n            this.AddDomainEvent(new MeetingWaitlistMemberAddedDomainEvent(this.MeetingId, this.MemberId));\r\n        }\r\n\r\n        internal static MeetingWaitlistMember CreateNew(MeetingId meetingId, MemberId memberId)\r\n        {\r\n            return new MeetingWaitlistMember(meetingId, memberId);\r\n        }\r\n\r\n        internal void MarkIsMovedToAttendees()\r\n        {\r\n            _isMovedToAttendees = true;\r\n            _movedToAttendeesDate = SystemClock.Now;\r\n        }\r\n\r\n        internal bool IsActiveOnWaitList(MemberId memberId)\r\n        {\r\n            return this.MemberId == memberId \u0026\u0026 this.IsActive();\r\n        }\r\n\r\n        internal bool IsActive()\r\n        {\r\n            return !_isSignedOff \u0026\u0026 !_isMovedToAttendees;\r\n        }\r\n\r\n        internal void SignOff()\r\n        {\r\n            _isSignedOff = true;\r\n            _signOffDate = SystemClock.Now;\r\n\r\n            this.AddDomainEvent(new MemberSignedOffFromMeetingWaitlistDomainEvent(this.MeetingId, this.MemberId));\r\n        }\r\n    }\r\n}","mutants":[{"id":"346","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":30,"column":9},"end":{"line":37,"column":10}},"status":"Killed","static":false},{"id":"347","mutatorName":"Boolean mutation","replacement":"true","location":{"start":{"line":34,"column":35},"end":{"line":34,"column":40}},"status":"Killed","static":false},{"id":"348","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":36,"column":13},"end":{"line":36,"column":107}},"status":"Killed","static":false},{"id":"349","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":40,"column":9},"end":{"line":42,"column":10}},"status":"Killed","static":false},{"id":"350","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":45,"column":9},"end":{"line":48,"column":10}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false},{"id":"351","mutatorName":"Boolean mutation","replacement":"false","location":{"start":{"line":46,"column":35},"end":{"line":46,"column":39}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false},{"id":"352","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":51,"column":9},"end":{"line":53,"column":10}},"status":"Killed","static":false},{"id":"353","mutatorName":"Logical mutation","replacement":"this.MemberId == memberId || this.IsActive()","location":{"start":{"line":52,"column":20},"end":{"line":52,"column":64}},"status":"Survived","static":false},{"id":"354","mutatorName":"Equality mutation","replacement":"this.MemberId != memberId ","location":{"start":{"line":52,"column":20},"end":{"line":52,"column":45}},"status":"Killed","static":false},{"id":"355","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":56,"column":9},"end":{"line":58,"column":10}},"status":"Killed","static":false},{"id":"356","mutatorName":"Logical mutation","replacement":"!_isSignedOff || !_isMovedToAttendees","location":{"start":{"line":57,"column":20},"end":{"line":57,"column":57}},"status":"Survived","static":false},{"id":"357","mutatorName":"LogicalNotExpression to un-LogicalNotExpression mutation","replacement":"_isSignedOff ","location":{"start":{"line":57,"column":20},"end":{"line":57,"column":33}},"status":"Killed","static":false},{"id":"358","mutatorName":"LogicalNotExpression to un-LogicalNotExpression mutation","replacement":"_isMovedToAttendees","location":{"start":{"line":57,"column":37},"end":{"line":57,"column":57}},"status":"Killed","static":false},{"id":"359","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":61,"column":9},"end":{"line":66,"column":10}},"status":"Killed","static":false},{"id":"360","mutatorName":"Boolean mutation","replacement":"false","location":{"start":{"line":62,"column":28},"end":{"line":62,"column":32}},"status":"Survived","static":false},{"id":"361","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":65,"column":13},"end":{"line":65,"column":115}},"status":"Killed","static":false}]},"Meetings\\MoneyValue.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings\r\n{\r\n    public class MoneyValue : ValueObject\r\n    {\r\n        public static MoneyValue Undefined =\u003E new MoneyValue(null, null);\r\n\r\n        public decimal? Value { get; }\r\n\r\n        public string Currency { get; }\r\n\r\n        public static MoneyValue Of(decimal value, string currency)\r\n        {\r\n            return new MoneyValue(value, currency);\r\n        }\r\n\r\n        private MoneyValue(decimal? value, string currency)\r\n        {\r\n            this.Value = value;\r\n            this.Currency = currency;\r\n        }\r\n\r\n        public static MoneyValue operator *(int left, MoneyValue right)\r\n        {\r\n            return new MoneyValue(right.Value * left, right.Currency);\r\n        }\r\n    }\r\n}","mutants":[{"id":"362","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":14,"column":9},"end":{"line":16,"column":10}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false},{"id":"363","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":19,"column":9},"end":{"line":22,"column":10}},"status":"Survived","static":false},{"id":"364","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":25,"column":9},"end":{"line":27,"column":10}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false},{"id":"365","mutatorName":"Arithmetic mutation","replacement":"right.Value / left","location":{"start":{"line":26,"column":35},"end":{"line":26,"column":53}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false}]},"Meetings\\Rules\\AttendeeCanBeAddedOnlyInRsvpTermRule.cs":{"language":"cs","source":"using System;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.SharedKernel;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Rules\r\n{\r\n    public class AttendeeCanBeAddedOnlyInRsvpTermRule : IBusinessRule\r\n    {\r\n        private readonly Term _rsvpTerm;\r\n\r\n        internal AttendeeCanBeAddedOnlyInRsvpTermRule(Term rsvpTerm)\r\n        {\r\n            _rsvpTerm = rsvpTerm;\r\n        }\r\n\r\n        public bool IsBroken() =\u003E !_rsvpTerm.IsInTerm(SystemClock.Now);\r\n\r\n        public string Message =\u003E \u0022Attendee can be added only in RSVP term\u0022;\r\n    }\r\n}","mutants":[{"id":"366","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":12,"column":9},"end":{"line":14,"column":10}},"status":"Killed","static":false},{"id":"367","mutatorName":"LogicalNotExpression to un-LogicalNotExpression mutation","replacement":"_rsvpTerm.IsInTerm(SystemClock.Now)","location":{"start":{"line":16,"column":35},"end":{"line":16,"column":71}},"status":"Killed","static":false},{"id":"368","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":18,"column":34},"end":{"line":18,"column":75}},"status":"Survived","static":false}]},"Meetings\\Rules\\AttendeesLimitCannotBeChangedToSmallerThanActiveAttendeesRule.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Rules\r\n{\r\n    internal class AttendeesLimitCannotBeChangedToSmallerThanActiveAttendeesRule : IBusinessRule\r\n    {\r\n        private readonly int? _attendeesLimit;\r\n\r\n        private readonly int _allActiveAttendeesWithGuestsNumber;\r\n\r\n        internal AttendeesLimitCannotBeChangedToSmallerThanActiveAttendeesRule(\r\n            MeetingLimits meetingLimits,\r\n            int allActiveAttendeesWithGuestsNumber)\r\n        {\r\n            this._attendeesLimit = meetingLimits.AttendeesLimit;\r\n            this._allActiveAttendeesWithGuestsNumber = allActiveAttendeesWithGuestsNumber;\r\n        }\r\n\r\n        public bool IsBroken() =\u003E _attendeesLimit.HasValue \u0026\u0026 _attendeesLimit.Value \u003C _allActiveAttendeesWithGuestsNumber;\r\n\r\n        public string Message =\u003E \u0022Attendees limit cannot be change to smaller than active attendees number\u0022;\r\n    }\r\n}","mutants":[{"id":"369","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":14,"column":9},"end":{"line":17,"column":10}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false},{"id":"370","mutatorName":"Logical mutation","replacement":"_attendeesLimit.HasValue || _attendeesLimit.Value \u003C _allActiveAttendeesWithGuestsNumber","location":{"start":{"line":19,"column":35},"end":{"line":19,"column":122}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false},{"id":"371","mutatorName":"Equality mutation","replacement":"_attendeesLimit.Value \u003E _allActiveAttendeesWithGuestsNumber","location":{"start":{"line":19,"column":63},"end":{"line":19,"column":122}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false},{"id":"372","mutatorName":"Equality mutation","replacement":"_attendeesLimit.Value \u003C= _allActiveAttendeesWithGuestsNumber","location":{"start":{"line":19,"column":63},"end":{"line":19,"column":122}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false},{"id":"373","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":21,"column":34},"end":{"line":21,"column":108}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false}]},"Meetings\\Rules\\MeetingAttendeeMustBeAMemberOfGroupRule.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Rules\r\n{\r\n    public class MeetingAttendeeMustBeAMemberOfGroupRule : IBusinessRule\r\n    {\r\n        private readonly MeetingGroup _meetingGroup;\r\n\r\n        private readonly MemberId _attendeeId;\r\n\r\n        internal MeetingAttendeeMustBeAMemberOfGroupRule(MemberId attendeeId, MeetingGroup meetingGroup)\r\n        {\r\n            _attendeeId = attendeeId;\r\n            _meetingGroup = meetingGroup;\r\n        }\r\n\r\n        public bool IsBroken()\r\n        {\r\n            return !_meetingGroup.IsMemberOfGroup(_attendeeId);\r\n        }\r\n\r\n        public string Message =\u003E \u0022Meeting attendee must be a member of group\u0022;\r\n    }\r\n}","mutants":[{"id":"374","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":14,"column":9},"end":{"line":17,"column":10}},"status":"Killed","static":false},{"id":"375","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":20,"column":9},"end":{"line":22,"column":10}},"status":"Killed","static":false},{"id":"376","mutatorName":"LogicalNotExpression to un-LogicalNotExpression mutation","replacement":"_meetingGroup.IsMemberOfGroup(_attendeeId)","location":{"start":{"line":21,"column":20},"end":{"line":21,"column":63}},"status":"Killed","static":false},{"id":"377","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":24,"column":34},"end":{"line":24,"column":78}},"status":"Survived","static":false}]},"Meetings\\Rules\\MeetingAttendeesLimitCannotBeNegativeRule.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Rules\r\n{\r\n    public class MeetingAttendeesLimitCannotBeNegativeRule : IBusinessRule\r\n    {\r\n        private readonly int? _attendeesLimit;\r\n\r\n        public MeetingAttendeesLimitCannotBeNegativeRule(int? attendeesLimit)\r\n        {\r\n            _attendeesLimit = attendeesLimit;\r\n        }\r\n\r\n        public bool IsBroken() =\u003E _attendeesLimit.HasValue \u0026\u0026 _attendeesLimit.Value \u003C 0;\r\n\r\n        public string Message =\u003E \u0022Attendees limit cannot be negative\u0022;\r\n    }\r\n}","mutants":[{"id":"378","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":10,"column":9},"end":{"line":12,"column":10}},"status":"Killed","static":false},{"id":"379","mutatorName":"Logical mutation","replacement":"_attendeesLimit.HasValue || _attendeesLimit.Value \u003C 0","location":{"start":{"line":14,"column":35},"end":{"line":14,"column":88}},"status":"Killed","static":false},{"id":"380","mutatorName":"Equality mutation","replacement":"_attendeesLimit.Value \u003E 0","location":{"start":{"line":14,"column":63},"end":{"line":14,"column":88}},"status":"Killed","static":false},{"id":"381","mutatorName":"Equality mutation","replacement":"_attendeesLimit.Value \u003C= 0","location":{"start":{"line":14,"column":63},"end":{"line":14,"column":88}},"status":"Survived","static":false},{"id":"382","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":16,"column":34},"end":{"line":16,"column":70}},"status":"Survived","static":false}]},"Meetings\\Rules\\MeetingAttendeesLimitMustBeGreaterThanGuestsLimitRule.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Rules\r\n{\r\n    public class MeetingAttendeesLimitMustBeGreaterThanGuestsLimitRule : IBusinessRule\r\n    {\r\n        private readonly int? _attendeesLimit;\r\n\r\n        private readonly int _guestsLimit;\r\n\r\n        public MeetingAttendeesLimitMustBeGreaterThanGuestsLimitRule(int? attendeesLimit, int guestsLimit)\r\n        {\r\n            _attendeesLimit = attendeesLimit;\r\n            _guestsLimit = guestsLimit;\r\n        }\r\n\r\n        public bool IsBroken() =\u003E _attendeesLimit.HasValue \u0026\u0026 _attendeesLimit.Value \u003C _guestsLimit;\r\n\r\n        public string Message =\u003E \u0022Attendees limit must be greater than guests limit\u0022;\r\n    }\r\n}","mutants":[{"id":"383","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":12,"column":9},"end":{"line":15,"column":10}},"status":"Killed","static":false},{"id":"384","mutatorName":"Logical mutation","replacement":"_attendeesLimit.HasValue || _attendeesLimit.Value \u003C _guestsLimit","location":{"start":{"line":17,"column":35},"end":{"line":17,"column":99}},"status":"Killed","static":false},{"id":"385","mutatorName":"Equality mutation","replacement":"_attendeesLimit.Value \u003E _guestsLimit","location":{"start":{"line":17,"column":63},"end":{"line":17,"column":99}},"status":"Killed","static":false},{"id":"386","mutatorName":"Equality mutation","replacement":"_attendeesLimit.Value \u003C= _guestsLimit","location":{"start":{"line":17,"column":63},"end":{"line":17,"column":99}},"status":"Survived","static":false},{"id":"387","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":19,"column":34},"end":{"line":19,"column":85}},"status":"Survived","static":false}]},"Meetings\\Rules\\MeetingAttendeesNumberIsAboveLimitRule.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Rules\r\n{\r\n    public class MeetingAttendeesNumberIsAboveLimitRule : IBusinessRule\r\n    {\r\n        private readonly int? _attendeesLimit;\r\n\r\n        private readonly int _allActiveAttendeesWithGuestsNumber;\r\n\r\n        private readonly int _guestsNumber;\r\n\r\n        internal MeetingAttendeesNumberIsAboveLimitRule(\r\n            int? attendeesLimit,\r\n            int allActiveAttendeesWithGuestsNumber,\r\n            int guestsNumber)\r\n        {\r\n            _attendeesLimit = attendeesLimit;\r\n            _allActiveAttendeesWithGuestsNumber = allActiveAttendeesWithGuestsNumber;\r\n            _guestsNumber = guestsNumber;\r\n        }\r\n\r\n        public bool IsBroken() =\u003E this._attendeesLimit.HasValue \u0026\u0026\r\n                                  this._attendeesLimit.Value \u003C _allActiveAttendeesWithGuestsNumber \u002B 1 \u002B _guestsNumber;\r\n\r\n        public string Message =\u003E \u0022Meeting attendees number is above limit\u0022;\r\n    }\r\n}","mutants":[{"id":"388","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":17,"column":9},"end":{"line":21,"column":10}},"status":"Killed","static":false},{"id":"389","mutatorName":"Logical mutation","replacement":"this._attendeesLimit.HasValue ||\r\n                                  this._attendeesLimit.Value \u003C _allActiveAttendeesWithGuestsNumber \u002B 1 \u002B _guestsNumber","location":{"start":{"line":23,"column":35},"end":{"line":24,"column":119}},"status":"Killed","static":false},{"id":"390","mutatorName":"Equality mutation","replacement":"                                  this._attendeesLimit.Value \u003E _allActiveAttendeesWithGuestsNumber \u002B 1 \u002B _guestsNumber","location":{"start":{"line":24,"column":35},"end":{"line":24,"column":119}},"status":"Killed","static":false},{"id":"391","mutatorName":"Equality mutation","replacement":"                                  this._attendeesLimit.Value \u003C= _allActiveAttendeesWithGuestsNumber \u002B 1 \u002B _guestsNumber","location":{"start":{"line":24,"column":35},"end":{"line":24,"column":119}},"status":"Killed","static":false},{"id":"392","mutatorName":"Arithmetic mutation","replacement":"_allActiveAttendeesWithGuestsNumber \u002B 1 - _guestsNumber","location":{"start":{"line":24,"column":64},"end":{"line":24,"column":119}},"status":"Survived","static":false},{"id":"393","mutatorName":"Arithmetic mutation","replacement":"_allActiveAttendeesWithGuestsNumber - 1 ","location":{"start":{"line":24,"column":64},"end":{"line":24,"column":103}},"status":"Killed","static":false},{"id":"394","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":26,"column":34},"end":{"line":26,"column":75}},"status":"Survived","static":false}]},"Meetings\\Rules\\MeetingCannotBeChangedAfterStartRule.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Rules\r\n{\r\n    public class MeetingCannotBeChangedAfterStartRule : IBusinessRule\r\n    {\r\n        private readonly MeetingTerm _meetingTerm;\r\n\r\n        public MeetingCannotBeChangedAfterStartRule(MeetingTerm meetingTerm)\r\n        {\r\n            _meetingTerm = meetingTerm;\r\n        }\r\n\r\n        public bool IsBroken() =\u003E _meetingTerm.IsAfterStart();\r\n\r\n        public string Message =\u003E \u0022Meeting cannot be changed after start\u0022;\r\n    }\r\n}","mutants":[{"id":"395","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":10,"column":9},"end":{"line":12,"column":10}},"status":"Killed","static":false},{"id":"396","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":16,"column":34},"end":{"line":16,"column":73}},"status":"Survived","static":false}]},"Meetings\\Rules\\MeetingGuestsLimitCannotBeNegativeRule.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Rules\r\n{\r\n    public class MeetingGuestsLimitCannotBeNegativeRule : IBusinessRule\r\n    {\r\n        private readonly int _guestsLimit;\r\n\r\n        public MeetingGuestsLimitCannotBeNegativeRule(int guestsLimit)\r\n        {\r\n            _guestsLimit = guestsLimit;\r\n        }\r\n\r\n        public bool IsBroken() =\u003E _guestsLimit \u003C 0;\r\n\r\n        public string Message =\u003E \u0022Guests limit cannot be negative\u0022;\r\n    }\r\n}","mutants":[{"id":"397","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":10,"column":9},"end":{"line":12,"column":10}},"status":"Killed","static":false},{"id":"398","mutatorName":"Equality mutation","replacement":"_guestsLimit \u003E 0","location":{"start":{"line":14,"column":35},"end":{"line":14,"column":51}},"status":"Killed","static":false},{"id":"399","mutatorName":"Equality mutation","replacement":"_guestsLimit \u003C= 0","location":{"start":{"line":14,"column":35},"end":{"line":14,"column":51}},"status":"Killed","static":false},{"id":"400","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":16,"column":34},"end":{"line":16,"column":67}},"status":"Survived","static":false}]},"Meetings\\Rules\\MeetingGuestsNumberIsAboveLimitRule.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Rules\r\n{\r\n    public class MeetingGuestsNumberIsAboveLimitRule : IBusinessRule\r\n    {\r\n        private readonly int _guestsNumber;\r\n\r\n        private readonly int _guestsLimit;\r\n\r\n        public MeetingGuestsNumberIsAboveLimitRule(int guestsLimit, int guestsNumber)\r\n        {\r\n            _guestsNumber = guestsNumber;\r\n            _guestsLimit = guestsLimit;\r\n        }\r\n\r\n        public bool IsBroken() =\u003E this._guestsLimit \u003E 0 \u0026\u0026 this._guestsLimit \u003C _guestsNumber;\r\n\r\n        public string Message =\u003E \u0022Meeting guests number is above limit\u0022;\r\n    }\r\n}","mutants":[{"id":"401","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":12,"column":9},"end":{"line":15,"column":10}},"status":"Killed","static":false},{"id":"402","mutatorName":"Logical mutation","replacement":"this._guestsLimit \u003E 0 || this._guestsLimit \u003C _guestsNumber","location":{"start":{"line":17,"column":35},"end":{"line":17,"column":93}},"status":"Killed","static":false},{"id":"403","mutatorName":"Equality mutation","replacement":"this._guestsLimit \u003C 0 ","location":{"start":{"line":17,"column":35},"end":{"line":17,"column":56}},"status":"Killed","static":false},{"id":"404","mutatorName":"Equality mutation","replacement":"this._guestsLimit \u003E= 0 ","location":{"start":{"line":17,"column":35},"end":{"line":17,"column":56}},"status":"Killed","static":false},{"id":"405","mutatorName":"Equality mutation","replacement":"this._guestsLimit \u003E _guestsNumber","location":{"start":{"line":17,"column":60},"end":{"line":17,"column":93}},"status":"Killed","static":false},{"id":"406","mutatorName":"Equality mutation","replacement":"this._guestsLimit \u003C= _guestsNumber","location":{"start":{"line":17,"column":60},"end":{"line":17,"column":93}},"status":"Survived","static":false},{"id":"407","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":19,"column":34},"end":{"line":19,"column":72}},"status":"Survived","static":false}]},"Meetings\\Rules\\MeetingMustHaveAtLeastOneHostRule.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Rules\r\n{\r\n    public class MeetingMustHaveAtLeastOneHostRule : IBusinessRule\r\n    {\r\n        private readonly int _meetingHostNumber;\r\n\r\n        public MeetingMustHaveAtLeastOneHostRule(int meetingHostNumber)\r\n        {\r\n            _meetingHostNumber = meetingHostNumber;\r\n        }\r\n\r\n        public bool IsBroken() =\u003E _meetingHostNumber == 0;\r\n\r\n        public string Message =\u003E \u0022Meeting must have at least one host\u0022;\r\n    }\r\n}","mutants":[{"id":"408","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":10,"column":9},"end":{"line":12,"column":10}},"status":"Killed","static":false},{"id":"409","mutatorName":"Equality mutation","replacement":"_meetingHostNumber != 0","location":{"start":{"line":14,"column":35},"end":{"line":14,"column":58}},"status":"Killed","static":false},{"id":"410","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":16,"column":34},"end":{"line":16,"column":71}},"status":"Survived","static":false}]},"Meetings\\Rules\\MemberCannotBeAnAttendeeOfMeetingMoreThanOnceRule.cs":{"language":"cs","source":"using System.Collections.Generic;\r\nusing System.Linq;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Rules\r\n{\r\n    public class MemberCannotBeAnAttendeeOfMeetingMoreThanOnceRule : IBusinessRule\r\n    {\r\n        private readonly MemberId _attendeeId;\r\n\r\n        private readonly List\u003CMeetingAttendee\u003E _attendees;\r\n\r\n        public MemberCannotBeAnAttendeeOfMeetingMoreThanOnceRule(MemberId attendeeId, List\u003CMeetingAttendee\u003E attendees)\r\n        {\r\n            this._attendeeId = attendeeId;\r\n            _attendees = attendees;\r\n        }\r\n\r\n        public bool IsBroken() =\u003E _attendees.SingleOrDefault(x =\u003E x.IsActiveAttendee(_attendeeId)) != null;\r\n\r\n        public string Message =\u003E \u0022Member is already an attendee of this meeting\u0022;\r\n    }\r\n}","mutants":[{"id":"411","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":15,"column":9},"end":{"line":18,"column":10}},"status":"Killed","static":false},{"id":"412","mutatorName":"Equality mutation","replacement":"_attendees.SingleOrDefault(x =\u003E x.IsActiveAttendee(_attendeeId)) == null","location":{"start":{"line":20,"column":35},"end":{"line":20,"column":107}},"status":"Killed","static":false},{"id":"413","mutatorName":"Linq method mutation (SingleOrDefault() to Single())","replacement":"_attendees.Single(x =\u003E x.IsActiveAttendee(_attendeeId)) ","location":{"start":{"line":20,"column":35},"end":{"line":20,"column":99}},"status":"Killed","static":false},{"id":"414","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":22,"column":34},"end":{"line":22,"column":81}},"status":"Survived","static":false}]},"Meetings\\Rules\\MemberCannotBeMoreThanOnceOnMeetingWaitlistRule.cs":{"language":"cs","source":"using System.Collections.Generic;\r\nusing System.Linq;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Rules\r\n{\r\n    public class MemberCannotBeMoreThanOnceOnMeetingWaitlistRule : IBusinessRule\r\n    {\r\n        private readonly List\u003CMeetingWaitlistMember\u003E _waitListMembers;\r\n\r\n        private readonly MemberId _memberId;\r\n\r\n        internal MemberCannotBeMoreThanOnceOnMeetingWaitlistRule(List\u003CMeetingWaitlistMember\u003E waitListMembers, MemberId memberId)\r\n        {\r\n            _waitListMembers = waitListMembers;\r\n            _memberId = memberId;\r\n        }\r\n\r\n        public bool IsBroken() =\u003E _waitListMembers.SingleOrDefault(x =\u003E x.IsActiveOnWaitList(_memberId)) != null;\r\n\r\n        public string Message =\u003E \u0022Member cannot be more than once on the meeting waitlist\u0022;\r\n    }\r\n}","mutants":[{"id":"415","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":15,"column":9},"end":{"line":18,"column":10}},"status":"Killed","static":false},{"id":"416","mutatorName":"Equality mutation","replacement":"_waitListMembers.SingleOrDefault(x =\u003E x.IsActiveOnWaitList(_memberId)) == null","location":{"start":{"line":20,"column":35},"end":{"line":20,"column":113}},"status":"Killed","static":false},{"id":"417","mutatorName":"Linq method mutation (SingleOrDefault() to Single())","replacement":"_waitListMembers.Single(x =\u003E x.IsActiveOnWaitList(_memberId)) ","location":{"start":{"line":20,"column":35},"end":{"line":20,"column":105}},"status":"Killed","static":false},{"id":"418","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":22,"column":34},"end":{"line":22,"column":91}},"status":"Survived","static":false}]},"Meetings\\Rules\\MemberCannotBeNotAttendeeTwiceRule.cs":{"language":"cs","source":"using System.Collections.Generic;\r\nusing System.Linq;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Rules\r\n{\r\n    public class MemberCannotBeNotAttendeeTwiceRule : IBusinessRule\r\n    {\r\n        private readonly List\u003CMeetingNotAttendee\u003E _notAttendees;\r\n\r\n        private readonly MemberId _memberId;\r\n\r\n        public MemberCannotBeNotAttendeeTwiceRule(List\u003CMeetingNotAttendee\u003E notAttendees, MemberId memberId)\r\n        {\r\n            _notAttendees = notAttendees;\r\n            _memberId = memberId;\r\n        }\r\n\r\n        public bool IsBroken() =\u003E _notAttendees.SingleOrDefault(x =\u003E x.IsActiveNotAttendee(_memberId)) != null;\r\n\r\n        public string Message =\u003E \u0022Member cannot be active not attendee twice\u0022;\r\n    }\r\n}","mutants":[{"id":"419","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":15,"column":9},"end":{"line":18,"column":10}},"status":"Killed","static":false},{"id":"420","mutatorName":"Equality mutation","replacement":"_notAttendees.SingleOrDefault(x =\u003E x.IsActiveNotAttendee(_memberId)) == null","location":{"start":{"line":20,"column":35},"end":{"line":20,"column":111}},"status":"Killed","static":false},{"id":"421","mutatorName":"Linq method mutation (SingleOrDefault() to Single())","replacement":"_notAttendees.Single(x =\u003E x.IsActiveNotAttendee(_memberId)) ","location":{"start":{"line":20,"column":35},"end":{"line":20,"column":103}},"status":"Killed","static":false},{"id":"422","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":22,"column":34},"end":{"line":22,"column":78}},"status":"Survived","static":false}]},"Meetings\\Rules\\MemberCannotHaveSetAttendeeRoleMoreThanOnceRule.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Rules\r\n{\r\n    public class MemberCannotHaveSetAttendeeRoleMoreThanOnceRule : IBusinessRule\r\n    {\r\n        private readonly MeetingAttendeeRole _meetingAttendeeRole;\r\n\r\n        internal MemberCannotHaveSetAttendeeRoleMoreThanOnceRule(MeetingAttendeeRole meetingAttendeeRole)\r\n        {\r\n            _meetingAttendeeRole = meetingAttendeeRole;\r\n        }\r\n\r\n        public bool IsBroken() =\u003E _meetingAttendeeRole == MeetingAttendeeRole.Attendee;\r\n\r\n        public string Message =\u003E \u0022Member cannot be attendee of meeting more than once\u0022;\r\n    }\r\n}","mutants":[{"id":"423","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":10,"column":9},"end":{"line":12,"column":10}},"status":"Killed","static":false},{"id":"424","mutatorName":"Equality mutation","replacement":"_meetingAttendeeRole != MeetingAttendeeRole.Attendee","location":{"start":{"line":14,"column":35},"end":{"line":14,"column":87}},"status":"Killed","static":false},{"id":"425","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":16,"column":34},"end":{"line":16,"column":87}},"status":"Survived","static":false}]},"Meetings\\Rules\\MemberOnWaitlistMustBeAMemberOfGroupRule.cs":{"language":"cs","source":"using System.Collections.Generic;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Rules\r\n{\r\n    public class MemberOnWaitlistMustBeAMemberOfGroupRule : IBusinessRule\r\n    {\r\n        private readonly MeetingGroup _meetingGroup;\r\n\r\n        private readonly MemberId _memberId;\r\n\r\n        private readonly List\u003CMeetingAttendee\u003E _attendees;\r\n\r\n        internal MemberOnWaitlistMustBeAMemberOfGroupRule(MeetingGroup meetingGroup, MemberId memberId, List\u003CMeetingAttendee\u003E attendees)\r\n            : base()\r\n        {\r\n            _meetingGroup = meetingGroup;\r\n            _memberId = memberId;\r\n            _attendees = attendees;\r\n        }\r\n\r\n        public bool IsBroken() =\u003E !_meetingGroup.IsMemberOfGroup(_memberId);\r\n\r\n        public string Message =\u003E \u0022Member on waitlist must be a member of group\u0022;\r\n    }\r\n}","mutants":[{"id":"426","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":18,"column":9},"end":{"line":22,"column":10}},"status":"Killed","static":false},{"id":"427","mutatorName":"LogicalNotExpression to un-LogicalNotExpression mutation","replacement":"_meetingGroup.IsMemberOfGroup(_memberId)","location":{"start":{"line":24,"column":35},"end":{"line":24,"column":76}},"status":"Killed","static":false},{"id":"428","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":26,"column":34},"end":{"line":26,"column":80}},"status":"Survived","static":false}]},"Meetings\\Rules\\NotActiveMemberOfWaitlistCannotBeSignedOffRule.cs":{"language":"cs","source":"using System.Collections.Generic;\r\nusing System.Linq;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Rules\r\n{\r\n    public class NotActiveMemberOfWaitlistCannotBeSignedOffRule : IBusinessRule\r\n    {\r\n        private readonly List\u003CMeetingWaitlistMember\u003E _waitlistMembers;\r\n\r\n        private readonly MemberId _memberId;\r\n\r\n        public NotActiveMemberOfWaitlistCannotBeSignedOffRule(List\u003CMeetingWaitlistMember\u003E waitlistMembers, MemberId memberId)\r\n        {\r\n            _waitlistMembers = waitlistMembers;\r\n            _memberId = memberId;\r\n        }\r\n\r\n        public bool IsBroken() =\u003E _waitlistMembers.SingleOrDefault(x =\u003E x.IsActiveOnWaitList(_memberId)) == null;\r\n\r\n        public string Message =\u003E \u0022Not active member of waitlist cannot be signed off\u0022;\r\n    }\r\n}","mutants":[{"id":"429","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":15,"column":9},"end":{"line":18,"column":10}},"status":"Killed","static":false},{"id":"430","mutatorName":"Equality mutation","replacement":"_waitlistMembers.SingleOrDefault(x =\u003E x.IsActiveOnWaitList(_memberId)) != null","location":{"start":{"line":20,"column":35},"end":{"line":20,"column":113}},"status":"Killed","static":false},{"id":"431","mutatorName":"Linq method mutation (SingleOrDefault() to Single())","replacement":"_waitlistMembers.Single(x =\u003E x.IsActiveOnWaitList(_memberId)) ","location":{"start":{"line":20,"column":35},"end":{"line":20,"column":105}},"status":"Killed","static":false},{"id":"432","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":22,"column":34},"end":{"line":22,"column":86}},"status":"Survived","static":false}]},"Meetings\\Rules\\NotActiveNotAttendeeCannotChangeDecisionRule.cs":{"language":"cs","source":"using System.Collections.Generic;\r\nusing System.Linq;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Rules\r\n{\r\n    public class NotActiveNotAttendeeCannotChangeDecisionRule : IBusinessRule\r\n    {\r\n        private readonly List\u003CMeetingNotAttendee\u003E _notAttendees;\r\n\r\n        private readonly MemberId _memberId;\r\n\r\n        internal NotActiveNotAttendeeCannotChangeDecisionRule(List\u003CMeetingNotAttendee\u003E notAttendees, MemberId memberId)\r\n        {\r\n            _notAttendees = notAttendees;\r\n            _memberId = memberId;\r\n        }\r\n\r\n        public bool IsBroken() =\u003E _notAttendees.SingleOrDefault(x =\u003E x.IsActiveNotAttendee(_memberId)) == null;\r\n\r\n        public string Message =\u003E \u0022Member is not active not attendee\u0022;\r\n    }\r\n}","mutants":[{"id":"433","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":15,"column":9},"end":{"line":18,"column":10}},"status":"Killed","static":false},{"id":"434","mutatorName":"Equality mutation","replacement":"_notAttendees.SingleOrDefault(x =\u003E x.IsActiveNotAttendee(_memberId)) != null","location":{"start":{"line":20,"column":35},"end":{"line":20,"column":111}},"status":"Killed","static":false},{"id":"435","mutatorName":"Linq method mutation (SingleOrDefault() to Single())","replacement":"_notAttendees.Single(x =\u003E x.IsActiveNotAttendee(_memberId)) ","location":{"start":{"line":20,"column":35},"end":{"line":20,"column":103}},"status":"Killed","static":false},{"id":"436","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":22,"column":34},"end":{"line":22,"column":69}},"status":"Survived","static":false}]},"Meetings\\Rules\\OnlyActiveAttendeeCanBeRemovedFromMeetingRule.cs":{"language":"cs","source":"using System.Collections.Generic;\r\nusing System.Linq;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Rules\r\n{\r\n    public class OnlyActiveAttendeeCanBeRemovedFromMeetingRule : IBusinessRule\r\n    {\r\n        private readonly List\u003CMeetingAttendee\u003E _attendees;\r\n        private readonly MemberId _attendeeId;\r\n\r\n        internal OnlyActiveAttendeeCanBeRemovedFromMeetingRule(\r\n            List\u003CMeetingAttendee\u003E attendees,\r\n            MemberId attendeeId)\r\n        {\r\n            _attendees = attendees;\r\n            _attendeeId = attendeeId;\r\n        }\r\n\r\n        public bool IsBroken() =\u003E _attendees.SingleOrDefault(x =\u003E x.IsActiveAttendee(_attendeeId)) == null;\r\n\r\n        public string Message =\u003E \u0022Only active attendee can be removed from meeting\u0022;\r\n    }\r\n}","mutants":[{"id":"437","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":16,"column":9},"end":{"line":19,"column":10}},"status":"Killed","static":false},{"id":"438","mutatorName":"Equality mutation","replacement":"_attendees.SingleOrDefault(x =\u003E x.IsActiveAttendee(_attendeeId)) != null","location":{"start":{"line":21,"column":35},"end":{"line":21,"column":107}},"status":"Killed","static":false},{"id":"439","mutatorName":"Linq method mutation (SingleOrDefault() to Single())","replacement":"_attendees.Single(x =\u003E x.IsActiveAttendee(_attendeeId)) ","location":{"start":{"line":21,"column":35},"end":{"line":21,"column":99}},"status":"Killed","static":false},{"id":"440","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":23,"column":34},"end":{"line":23,"column":84}},"status":"Survived","static":false}]},"Meetings\\Rules\\OnlyMeetingAttendeeCanHaveChangedRoleRule.cs":{"language":"cs","source":"using System.Collections.Generic;\r\nusing System.Linq;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Rules\r\n{\r\n    internal class OnlyMeetingAttendeeCanHaveChangedRoleRule : IBusinessRule\r\n    {\r\n        private readonly List\u003CMeetingAttendee\u003E _attendees;\r\n\r\n        private readonly MemberId _newOrganizerId;\r\n\r\n        internal OnlyMeetingAttendeeCanHaveChangedRoleRule(List\u003CMeetingAttendee\u003E attendees, MemberId newOrganizerId)\r\n        {\r\n            _attendees = attendees;\r\n            _newOrganizerId = newOrganizerId;\r\n        }\r\n\r\n        public bool IsBroken() =\u003E _attendees.SingleOrDefault(x =\u003E x.IsActiveAttendee(_newOrganizerId)) == null;\r\n\r\n        public string Message =\u003E \u0022Only meeting attendee can be se as organizer of meeting\u0022;\r\n    }\r\n}","mutants":[{"id":"441","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":15,"column":9},"end":{"line":18,"column":10}},"status":"Killed","static":false},{"id":"442","mutatorName":"Equality mutation","replacement":"_attendees.SingleOrDefault(x =\u003E x.IsActiveAttendee(_newOrganizerId)) != null","location":{"start":{"line":20,"column":35},"end":{"line":20,"column":111}},"status":"Killed","static":false},{"id":"443","mutatorName":"Linq method mutation (SingleOrDefault() to Single())","replacement":"_attendees.Single(x =\u003E x.IsActiveAttendee(_newOrganizerId)) ","location":{"start":{"line":20,"column":35},"end":{"line":20,"column":103}},"status":"Survived","static":false},{"id":"444","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":22,"column":34},"end":{"line":22,"column":91}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false}]},"Meetings\\Rules\\OnlyMeetingOrGroupOrganizerCanSetMeetingMemberRolesRule.cs":{"language":"cs","source":"using System.Collections.Generic;\r\nusing System.Linq;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Rules\r\n{\r\n    public class OnlyMeetingOrGroupOrganizerCanSetMeetingMemberRolesRule : IBusinessRule\r\n    {\r\n        private readonly MemberId _settingMemberId;\r\n        private readonly MeetingGroup _meetingGroup;\r\n        private readonly List\u003CMeetingAttendee\u003E _attendees;\r\n\r\n        public OnlyMeetingOrGroupOrganizerCanSetMeetingMemberRolesRule(MemberId settingMemberId, MeetingGroup meetingGroup, List\u003CMeetingAttendee\u003E attendees)\r\n        {\r\n            _settingMemberId = settingMemberId;\r\n            _meetingGroup = meetingGroup;\r\n            _attendees = attendees;\r\n        }\r\n\r\n        public bool IsBroken()\r\n        {\r\n            var settingMember = _attendees.SingleOrDefault(x =\u003E x.IsActiveAttendee(_settingMemberId));\r\n\r\n            var isHost = settingMember != null \u0026\u0026 settingMember.IsActiveHost();\r\n            var isOrganizer = _meetingGroup.IsOrganizer(_settingMemberId);\r\n\r\n            return !isHost \u0026\u0026 !isOrganizer;\r\n        }\r\n\r\n        public string Message =\u003E \u0022Only meeting host or group organizer can set meeting member roles\u0022;\r\n    }\r\n}","mutants":[{"id":"445","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":16,"column":9},"end":{"line":20,"column":10}},"status":"Killed","static":false},{"id":"446","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":23,"column":9},"end":{"line":30,"column":10}},"status":"Killed","static":false},{"id":"447","mutatorName":"Linq method mutation (SingleOrDefault() to Single())","replacement":"_attendees.Single(x =\u003E x.IsActiveAttendee(_settingMemberId))","location":{"start":{"line":24,"column":33},"end":{"line":24,"column":102}},"status":"Killed","static":false},{"id":"448","mutatorName":"Logical mutation","replacement":"settingMember != null || settingMember.IsActiveHost()","location":{"start":{"line":26,"column":26},"end":{"line":26,"column":79}},"status":"Killed","static":false},{"id":"449","mutatorName":"Equality mutation","replacement":"settingMember == null ","location":{"start":{"line":26,"column":26},"end":{"line":26,"column":47}},"status":"Killed","static":false},{"id":"450","mutatorName":"Logical mutation","replacement":"!isHost || !isOrganizer","location":{"start":{"line":29,"column":20},"end":{"line":29,"column":43}},"status":"Killed","static":false},{"id":"451","mutatorName":"LogicalNotExpression to un-LogicalNotExpression mutation","replacement":"isHost ","location":{"start":{"line":29,"column":20},"end":{"line":29,"column":27}},"status":"Killed","static":false},{"id":"452","mutatorName":"LogicalNotExpression to un-LogicalNotExpression mutation","replacement":"isOrganizer","location":{"start":{"line":29,"column":31},"end":{"line":29,"column":43}},"status":"Killed","static":false},{"id":"453","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":32,"column":34},"end":{"line":32,"column":101}},"status":"Survived","static":false}]},"Meetings\\Rules\\ReasonOfRemovingAttendeeFromMeetingMustBeProvidedRule.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings.Rules\r\n{\r\n    public class ReasonOfRemovingAttendeeFromMeetingMustBeProvidedRule : IBusinessRule\r\n    {\r\n        private readonly string _reason;\r\n\r\n        internal ReasonOfRemovingAttendeeFromMeetingMustBeProvidedRule(string reason)\r\n        {\r\n            _reason = reason;\r\n        }\r\n\r\n        public bool IsBroken() =\u003E string.IsNullOrEmpty(_reason);\r\n\r\n        public string Message =\u003E \u0022Reason of removing attendee from meeting must be provided\u0022;\r\n    }\r\n}","mutants":[{"id":"454","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":10,"column":9},"end":{"line":12,"column":10}},"status":"Killed","static":false},{"id":"455","mutatorName":"String mutation","replacement":"\u0022\u0022","location":{"start":{"line":16,"column":34},"end":{"line":16,"column":93}},"status":"Survived","static":false}]},"Meetings\\Term.cs":{"language":"cs","source":"using System;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings\r\n{\r\n    public class Term : ValueObject\r\n    {\r\n        public static Term NoTerm =\u003E new Term(null, null);\r\n\r\n        public DateTime? StartDate { get; }\r\n\r\n        public DateTime? EndDate { get; }\r\n\r\n        public static Term CreateNewBetweenDates(DateTime? startDate, DateTime? endDate)\r\n        {\r\n            return new Term(startDate, endDate);\r\n        }\r\n\r\n        private Term(DateTime? startDate, DateTime? endDate)\r\n        {\r\n            this.StartDate = startDate;\r\n            this.EndDate = endDate;\r\n        }\r\n\r\n        internal bool IsInTerm(DateTime date)\r\n        {\r\n            var left = !this.StartDate.HasValue || this.StartDate.Value \u003C= date;\r\n\r\n            var right = !this.EndDate.HasValue || this.EndDate.Value \u003E= date;\r\n\r\n            return left \u0026\u0026 right;\r\n        }\r\n    }\r\n}","mutants":[{"id":"456","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":15,"column":9},"end":{"line":17,"column":10}},"status":"Killed","static":false},{"id":"457","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":20,"column":9},"end":{"line":23,"column":10}},"status":"Killed","static":false},{"id":"458","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":26,"column":9},"end":{"line":32,"column":10}},"status":"Killed","static":false},{"id":"459","mutatorName":"Logical mutation","replacement":"!this.StartDate.HasValue \u0026\u0026 this.StartDate.Value \u003C= date","location":{"start":{"line":27,"column":24},"end":{"line":27,"column":80}},"status":"Killed","static":false},{"id":"460","mutatorName":"LogicalNotExpression to un-LogicalNotExpression mutation","replacement":"this.StartDate.HasValue ","location":{"start":{"line":27,"column":24},"end":{"line":27,"column":48}},"status":"Killed","static":false},{"id":"461","mutatorName":"Equality mutation","replacement":"this.StartDate.Value \u003E date","location":{"start":{"line":27,"column":52},"end":{"line":27,"column":80}},"status":"Survived","static":false},{"id":"462","mutatorName":"Equality mutation","replacement":"this.StartDate.Value \u003C date","location":{"start":{"line":27,"column":52},"end":{"line":27,"column":80}},"status":"Survived","static":false},{"id":"463","mutatorName":"Logical mutation","replacement":"!this.EndDate.HasValue \u0026\u0026 this.EndDate.Value \u003E= date","location":{"start":{"line":29,"column":25},"end":{"line":29,"column":77}},"status":"Killed","static":false},{"id":"464","mutatorName":"LogicalNotExpression to un-LogicalNotExpression mutation","replacement":"this.EndDate.HasValue ","location":{"start":{"line":29,"column":25},"end":{"line":29,"column":47}},"status":"Killed","static":false},{"id":"465","mutatorName":"Equality mutation","replacement":"this.EndDate.Value \u003C date","location":{"start":{"line":29,"column":51},"end":{"line":29,"column":77}},"status":"Killed","static":false},{"id":"466","mutatorName":"Equality mutation","replacement":"this.EndDate.Value \u003E date","location":{"start":{"line":29,"column":51},"end":{"line":29,"column":77}},"status":"Survived","static":false},{"id":"467","mutatorName":"Logical mutation","replacement":"left || right","location":{"start":{"line":31,"column":20},"end":{"line":31,"column":33}},"status":"Killed","static":false}]},"Members\\Events\\MemberCreatedDomainEvent.cs":{"language":"cs","source":"using CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Members.Events\r\n{\r\n    public class MemberCreatedDomainEvent : DomainEventBase\r\n    {\r\n        public MemberId MemberId { get; }\r\n\r\n        public MemberCreatedDomainEvent(MemberId memberId)\r\n        {\r\n            MemberId = memberId;\r\n        }\r\n    }\r\n}","mutants":[{"id":"468","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":10,"column":9},"end":{"line":12,"column":10}},"status":"Killed","static":false}]},"Members\\IMemberContext.cs":{"language":"cs","source":"namespace CompanyName.MyMeetings.Modules.Meetings.Domain.Members\r\n{\r\n    public interface IMemberContext\r\n    {\r\n        MemberId MemberId { get; }\r\n    }\r\n}","mutants":[]},"Members\\IMemberRepository.cs":{"language":"cs","source":"using System;\r\nusing System.Threading.Tasks;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Members\r\n{\r\n    public interface IMemberRepository\r\n    {\r\n        Task AddAsync(Member member);\r\n\r\n        Task\u003CMember\u003E GetByIdAsync(MemberId memberId);\r\n    }\r\n}","mutants":[]},"Members\\MeetingGroupMemberData.cs":{"language":"cs","source":"using CompanyName.MyMeetings.Modules.Meetings.Domain.MeetingGroups;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Members\r\n{\r\n    public class MeetingGroupMemberData\r\n    {\r\n        public MeetingGroupId MeetingGroupId { get; }\r\n\r\n        public MemberId MemberId { get; }\r\n\r\n        public MeetingGroupMemberData(MeetingGroupId meetingGroupId, MemberId memberId)\r\n        {\r\n            MemberId = memberId;\r\n            MeetingGroupId = meetingGroupId;\r\n        }\r\n    }\r\n}","mutants":[{"id":"469","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":12,"column":9},"end":{"line":15,"column":10}},"status":"Survived","static":false}]},"Members\\Member.cs":{"language":"cs","source":"using System;\r\nusing System.Collections.Generic;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Meetings;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members.Events;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.SharedKernel;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Members\r\n{\r\n    public class Member : Entity, IAggregateRoot\r\n    {\r\n        public MemberId Id { get; private set; }\r\n\r\n        private string _login;\r\n\r\n        private string _email;\r\n\r\n        private string _firstName;\r\n\r\n        private string _lastName;\r\n\r\n        private string _name;\r\n\r\n        private DateTime _createDate;\r\n\r\n        private Member()\r\n        {\r\n            // Only for EF.\r\n        }\r\n\r\n        public static Member Create(Guid id, string login, string email, string firstName, string lastName, string name)\r\n        {\r\n            return new Member(id, login, email, firstName, lastName, name);\r\n        }\r\n\r\n        private Member(Guid id, string login, string email, string firstName, string lastName, string name)\r\n        {\r\n            this.Id = new MemberId(id);\r\n            _login = login;\r\n            _email = email;\r\n            _firstName = firstName;\r\n            _lastName = lastName;\r\n            _name = name;\r\n            _createDate = SystemClock.Now;\r\n\r\n            this.AddDomainEvent(new MemberCreatedDomainEvent(this.Id));\r\n        }\r\n    }\r\n}","mutants":[{"id":"470","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":32,"column":9},"end":{"line":34,"column":10}},"status":"Killed","static":false},{"id":"471","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":37,"column":9},"end":{"line":47,"column":10}},"status":"Killed","static":false},{"id":"472","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":46,"column":13},"end":{"line":46,"column":72}},"status":"Killed","static":false}]},"Members\\MemberId.cs":{"language":"cs","source":"using System;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Members\r\n{\r\n    public class MemberId : TypedIdValueBase\r\n    {\r\n        public MemberId(Guid value)\r\n            : base(value)\r\n        {\r\n        }\r\n    }\r\n}","mutants":[]},"Members\\MemberSubscriptions\\Events\\MemberSubscriptionExpirationDateChangedDomainEvent.cs":{"language":"cs","source":"using System;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Members.MemberSubscriptions.Events\r\n{\r\n    public class MemberSubscriptionExpirationDateChangedDomainEvent : DomainEventBase\r\n    {\r\n        public MemberSubscriptionExpirationDateChangedDomainEvent(MemberId memberId, DateTime expirationDate)\r\n        {\r\n            MemberId = memberId;\r\n            ExpirationDate = expirationDate;\r\n        }\r\n\r\n        public MemberId MemberId { get; }\r\n\r\n        public DateTime ExpirationDate { get; }\r\n    }\r\n}","mutants":[{"id":"473","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":9,"column":9},"end":{"line":12,"column":10}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false}]},"Members\\MemberSubscriptions\\IMemberSubscriptionRepository.cs":{"language":"cs","source":"using System.Threading.Tasks;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Members.MemberSubscriptions\r\n{\r\n    public interface IMemberSubscriptionRepository\r\n    {\r\n        Task\u003CMemberSubscription\u003E GetByIdOptionalAsync(MemberSubscriptionId memberSubscriptionId);\r\n\r\n        Task AddAsync(MemberSubscription memberSubscription);\r\n    }\r\n}","mutants":[]},"Members\\MemberSubscriptions\\MemberSubscription.cs":{"language":"cs","source":"using System;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\nusing CompanyName.MyMeetings.Modules.Meetings.Domain.Members.MemberSubscriptions.Events;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Members.MemberSubscriptions\r\n{\r\n    public class MemberSubscription : Entity, IAggregateRoot\r\n    {\r\n        public MemberSubscriptionId Id { get; private set; }\r\n\r\n        private DateTime _expirationDate;\r\n\r\n        private MemberSubscription()\r\n        {\r\n            // Only for EF.\r\n        }\r\n\r\n        private MemberSubscription(MemberId memberId, DateTime expirationDate)\r\n        {\r\n            this.Id = new MemberSubscriptionId(memberId.Value);\r\n            _expirationDate = expirationDate;\r\n\r\n            this.AddDomainEvent(new MemberSubscriptionExpirationDateChangedDomainEvent(memberId, _expirationDate));\r\n        }\r\n\r\n        public static MemberSubscription CreateForMember(MemberId memberId, DateTime expirationDate)\r\n        {\r\n            return new MemberSubscription(memberId, expirationDate);\r\n        }\r\n\r\n        public void ChangeExpirationDate(DateTime expirationDate)\r\n        {\r\n            _expirationDate = expirationDate;\r\n\r\n            this.AddDomainEvent(new MemberSubscriptionExpirationDateChangedDomainEvent(\r\n                new MemberId(this.Id.Value),\r\n                _expirationDate));\r\n        }\r\n    }\r\n}","mutants":[{"id":"474","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":19,"column":9},"end":{"line":24,"column":10}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false},{"id":"475","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":23,"column":13},"end":{"line":23,"column":116}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false},{"id":"476","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":27,"column":9},"end":{"line":29,"column":10}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false},{"id":"477","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":32,"column":9},"end":{"line":38,"column":10}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false},{"id":"478","mutatorName":"Statement mutation","replacement":";","location":{"start":{"line":35,"column":13},"end":{"line":37,"column":35}},"status":"NoCoverage","statusReason":"Mutant has no test coverage","static":false}]},"Members\\MemberSubscriptions\\MemberSubscriptionId.cs":{"language":"cs","source":"using System;\r\nusing CompanyName.MyMeetings.BuildingBlocks.Domain;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.Members.MemberSubscriptions\r\n{\r\n    public class MemberSubscriptionId : TypedIdValueBase\r\n    {\r\n        public MemberSubscriptionId(Guid value)\r\n            : base(value)\r\n        {\r\n        }\r\n    }\r\n}","mutants":[]},"SharedKernel\\SystemClock.cs":{"language":"cs","source":"using System;\r\n\r\nnamespace CompanyName.MyMeetings.Modules.Meetings.Domain.SharedKernel\r\n{\r\n    public static class SystemClock\r\n    {\r\n        private static DateTime? _customDate;\r\n\r\n        public static DateTime Now\r\n        {\r\n            get\r\n            {\r\n                if (_customDate.HasValue)\r\n                {\r\n                    return _customDate.Value;\r\n                }\r\n\r\n                return DateTime.UtcNow;\r\n            }\r\n        }\r\n\r\n        public static void Set(DateTime customDate) =\u003E _customDate = customDate;\r\n\r\n        public static void Reset() =\u003E _customDate = null;\r\n    }\r\n}","mutants":[{"id":"479","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":12,"column":13},"end":{"line":19,"column":14}},"status":"Killed","static":false},{"id":"480","mutatorName":"Negate expression","replacement":"!(_customDate.HasValue)","location":{"start":{"line":13,"column":21},"end":{"line":13,"column":41}},"status":"Killed","static":false},{"id":"481","mutatorName":"Block removal mutation","replacement":"{}","location":{"start":{"line":14,"column":17},"end":{"line":16,"column":18}},"status":"Killed","static":false}]}}};

            function updateTheme() {
                document.body.style.backgroundColor = app.themeBackgroundColor;
            }
            app.addEventListener('theme-changed', updateTheme);
            updateTheme();
        </script>
    </body>
</html>

